malwoden
Version:
   
92 lines • 4.01 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var input_1 = require("../input");
var memory_terminal_1 = require("../terminal/memory-terminal");
var button_widget_1 = require("./button-widget");
var terminal_1 = require("../terminal");
var test_utils_spec_1 = require("../input/test-utils.spec");
describe("ButtonWidget", function () {
beforeEach(test_utils_spec_1.setupTestDom);
it("can draw a basic button", function () {
var t = new memory_terminal_1.MemoryTerminal({ width: 10, height: 10 });
var b = new button_widget_1.ButtonWidget({ initialState: { text: "button" } });
b.onDraw();
b.setTerminal(t);
b.onDraw();
b.setState({ padding: 1, borderStyle: "single-bar" });
b.onDraw();
b.setState({ borderStyle: "double-bar" });
b.onDraw();
});
it("can get padding", function () {
var b = new button_widget_1.ButtonWidget({ initialState: { text: "button" } }).setState({
padding: 1,
});
expect(b["getPadding"]()).toEqual(1);
b.setState({ padding: undefined });
expect(b["getPadding"]()).toEqual(0);
});
it("can get bounds", function () {
var b = new button_widget_1.ButtonWidget({ initialState: { text: "Hello" } });
var bounds = b["getBounds"]();
expect(bounds.v1).toEqual({ x: 0, y: 0 });
expect(bounds.v2).toEqual({ x: 4, y: 0 });
});
it("can get the proper mouse handler from mouse state", function () {
var h = new input_1.MouseHandler();
var t = new memory_terminal_1.MemoryTerminal({ width: 10, height: 10 });
var b = new button_widget_1.ButtonWidget({ initialState: { text: "Hello" } })
.setTerminal(t)
.setMouseHandler(h);
var bounds = b["getBounds"]();
expect(bounds.v1).toEqual({ x: 0, y: 0 });
expect(bounds.v2).toEqual({ x: 4, y: 0 });
var mouseState = b["getMouseStateFromMouseHandler"](h, t);
expect(mouseState).toEqual(button_widget_1.HoverState.Hover);
h["_isDown"].add(0);
expect(bounds.contains(h.getPos()));
debugger;
expect(b["getMouseStateFromMouseHandler"](h, t)).toEqual(button_widget_1.HoverState.Down);
h["x"] = -1;
h["y"] = -1;
expect(b["getMouseStateFromMouseHandler"](h, t)).toEqual(button_widget_1.HoverState.None);
});
it("Will get the proper color depending on HoverState", function () {
var foreColor = terminal_1.Color.Red;
var backColor = terminal_1.Color.Blue;
var downColor = terminal_1.Color.Green;
var hoverColor = terminal_1.Color.Yellow;
var b = new button_widget_1.ButtonWidget({
initialState: {
text: "Hello",
foreColor: foreColor,
backColor: backColor,
downColor: downColor,
hoverColor: hoverColor,
},
});
expect(b["getBackColor"](button_widget_1.HoverState.None)).toEqual(backColor);
expect(b["getBackColor"](button_widget_1.HoverState.Hover)).toEqual(hoverColor);
expect(b["getBackColor"](button_widget_1.HoverState.Down)).toEqual(downColor);
expect(b["getBackColor"](-1)).toEqual(undefined);
});
it("can get a mouse click", function () {
var h = new input_1.MouseHandler();
var t = new memory_terminal_1.MemoryTerminal({ width: 10, height: 10 });
var b = new button_widget_1.ButtonWidget({ initialState: { text: "Hello" } });
var event = {
x: 0,
y: 0,
type: "mousedown",
button: 0,
};
b.onMouseClick(event);
b.setTerminal(t);
b.onMouseClick(event);
b.setState({ onClick: function () { } });
expect(b.onMouseClick(event)).toEqual(true);
event.x = -1;
expect(b.onMouseClick(event)).toEqual(false);
});
});
//# sourceMappingURL=button-widget.spec.js.map