import { compile2, VirtualMachine } from "../src"; import { DummyConsole } from "../src/virtualMachine/IConsole"; // import * as React from "react"; // import { render } from "react-dom"; // import { shallow, mount } from "enzyme"; // import { Console } from "../src"; describe("", () => { const virtualMachine = new VirtualMachine(new DummyConsole()); describe("Text Output", () => { it("PRINT", () => { const quickBasicProgram = compile2(`PRINT "Hello World"`); virtualMachine.run(quickBasicProgram, true); expect(virtualMachine.cons.text).toBe("Hello World\n"); }); }); // describe("[Property] autofocus: ", function() { // it("Has class `react-console-nofocus` until clicked when autofocus is undefined", function() { // const consoleRef = React.createRef<{ // log: (text: string) => void; // enter: () => void; // }>(); // var wrapper = mount( // {}} /> // ); // // expect(wrapper.find(".react-console-nofocus")).length(1); // // expect(wrapper.find(".react-console-focus")).length(0); // // wrapper.simulate("click"); // // expect(wrapper.find(".react-console-focus")).length(1); // // expect(wrapper.find(".react-console-nofocus")).length(0); // expect(wrapper.find(".react-console-nofocus").length).toBe(1); // expect(wrapper.find(".react-console-focus").length).toBe(0); // wrapper.simulate("click"); // // expect(wrapper.find(".react-console-focus").length).toBe(1); // // expect(wrapper.find(".react-console-nofocus").length).toBe(0); // }); // it("Has class `react-console-focus` on mount when autofocus=true", function() { // // var wrapper = mount(); // // expect(wrapper.find(".react-console-focus")).length(1); // // expect(wrapper.find(".react-console-nofocus")).length(0); // }); // }); // describe("[Property] handler: ", () => { // it("Recieves input value", done => { // // function handler(command: string) { // // expect(command).equals("ababa"); // // done(); // // } // // var wrapper = mount(); // // var typer = wrapper.find(".react-console-typer"); // // (typer.get(0) as HTMLTextAreaElement).value = "ababa"; // // typer.simulate("change"); // // typer.simulate("keyDown", { keyCode: 13 /* Return */ }); // /* // wrapper.setState({promptText: 'ababa'}); // var instance = wrapper.instance() as Console; // instance.acceptLine(); // */ // function handler(command: string) { // expect(command).toBe("ababa"); // done(); // } // var wrapper = mount(); // var typer = wrapper.find(".react-console-typer"); // typer.getDOMNode().value = "ababa"; // typer.simulate("change"); // typer.simulate("keyDown", { keyCode: 13 /* Return */ }); // }); // }); // describe("[Property] promptLabel: ", function() { // it("Has label '> ' when promptLabel undefined", () => { // const wrapper = mount( {}} />); // expect(wrapper.find(".react-console-prompt-label").text()).toBe("> "); // }); // it("Has label 'ababa: ' when promptLabel='ababa:' ", () => { // const wrapper = mount( // {}} /> // ); // expect(wrapper.find(".react-console-prompt-label").text()).toBe( // "ababa: " // ); // }); // it("Calls function when passed as promptLabel and uses returned values as labels", () => { // // var count = 0; // // function counter() { // // return count++; // // } // // var wrapper = mount(); // // var typer = wrapper.find(".react-console-typer"); // // typer.simulate("keyDown", { keyCode: 13 /* Return */ }); // // typer.simulate("keyDown", { keyCode: 13 /* Return */ }); // // typer.simulate("keyDown", { keyCode: 13 /* Return */ }); // // var labels = wrapper.find(".react-console-prompt-label"); // // expect(labels).length(4); // // expect(count).equals(4); // // expect(labels.at(0).text()).equals("0"); // // expect(labels.at(1).text()).equals("1"); // // expect(labels.at(2).text()).equals("2"); // // expect(labels.at(3).text()).equals("3"); // }); // }); // describe("[Property] welcomeMessage: ", () => { // it("Doesn't have class `react-console-welcome` when welcomeMessage undefined", () => { // // var wrapper = shallow(); // // expect(wrapper.find(".react-console-message")).length(0); // }); // it("Has div `react-console-welcome` with text()='foo' when welcomeMessage='foo'", () => { // // var wrapper = shallow(); // // var welcome = wrapper.find(".react-console-welcome"); // // expect(welcome).length(1); // // expect(welcome.text()).equal("foo"); // const wrapper = shallow( // {}} /> // ); // const welcome = wrapper.find(".react-console-welcome"); // expect(welcome.length).toBe(1); // expect(welcome.text()).toBe("foo"); // }); // }); });