diff options
Diffstat (limited to 'webAO/__tests__/aoml.test.ts')
| -rw-r--r-- | webAO/__tests__/aoml.test.ts | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/webAO/__tests__/aoml.test.ts b/webAO/__tests__/aoml.test.ts new file mode 100644 index 0000000..b799da6 --- /dev/null +++ b/webAO/__tests__/aoml.test.ts @@ -0,0 +1,109 @@ +import request from "../services/request"; +import mlConfig from "../utils/aoml"; + +jest.mock("../services/request"); +const networkRequest = ` +c0 = 247, 247, 247 +c0_name = White +c0_talking = 1 + +c2 = 247, 0, 57 +c2_name = Red +c2_start = ~ +c2_end = ~ +c2_remove = 1 +c2_talking = 1 + +c4 = 107, 198, 247 +c4_name = Blue +c4_start = ( +c4_end = ) +c4_remove = 0 +c4_talking = 0 + +c5 = 107, 198, 247 +c5_name = Blue +c5_start = [ +c5_end = ] +c5_remove = 1 +c5_talking = 0 + +c6 = 107, 198, 247 +c6_name = Blue +c6_start = | +c6_end = | +c6_remove = 0 +c6_talking = 0 +`; + +const mockRequest = request as jest.MockedFunction<typeof request>; +mockRequest.mockReturnValue(Promise.resolve(networkRequest)); + +describe("mlConfig", () => { + beforeEach(() => { + // Clear all instances and calls to constructor and all methods: + mockRequest.mockClear(); + }); + + it("Should make a network request", () => { + mlConfig("localhost"); + expect(mockRequest).toHaveBeenCalledTimes(1); + }); +}); +describe("applyMarkdown", () => { + const config = mlConfig("localhost"); + + beforeEach(() => { + // Clear all instances and calls to constructor and all methods: + mockRequest.mockClear(); + }); + + it("Should create an array of spans containing letters", async () => { + const word = `hello`; + const actual = await config.applyMarkdown(`hello`, `blue`); + let index = 0; + for (const element of actual) { + expect(element.innerHTML).toBe(word[index]); + index++; + } + }); + it("Should add colors based on settings", async () => { + const config = mlConfig("localhost"); + const actual = await config.applyMarkdown(`(heya)`, `blue`); + expect(actual[0].getAttribute("style")).toBe("color: rgb(107, 198, 247);"); + }); + it("Should keep a letter if remove = 0", async () => { + const config = mlConfig("localhost"); + + const actual = await config.applyMarkdown(`(What())Hey!`, `white`); + const expected = `(`; + expect(actual[5].innerHTML).toBe(expected); + }); + it("Should remove a letter if remove = 1", async () => { + const config = mlConfig("localhost"); + + const actual = await config.applyMarkdown(`~What~()Hey!`, `white`); + const expected = ``; + expect(actual[0].innerHTML).toBe(expected); + }); + it("Should remove a letter if remove = 1", async () => { + const config = mlConfig("localhost"); + + const actual = await config.applyMarkdown(`~What~()Hey!`, `white`); + const expected = ``; + expect(actual[0].innerHTML).toBe(expected); + }); + it("Should keep a closing letter if remove = 0", async () => { + const config = mlConfig("localhost"); + + const actual = await config.applyMarkdown(`~NO[]~!`, `white`); + const expected = ``; + expect(actual[4].innerHTML).toBe(expected); + }); + it("Should remove a closing letter if remove = 1", async () => { + const config = mlConfig("localhost"); + const actual = await config.applyMarkdown(`~NO||~!`, `white`); + const expected = ``; + expect(actual[5].innerHTML).toBe(expected); + }); +}); |
