UNPKG

malwoden

Version:

![alt text](./coverage/badge-lines.svg) ![alt text](./coverage/badge-statements.svg) ![alt text](./coverage/badge-functions.svg) ![alt text](./coverage/badge-branches.svg)

92 lines 4.01 kB
"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