import setEmote from "../setEmote.ts"; import Client from "../../client.ts"; import fileExists from "../../utils/fileExists"; import transparentPng from "../../constants/transparentPng"; jest.mock("../../viewport/utils/createMusic"); jest.mock("../../utils/fileExists"); jest.mock("../../viewport/utils/createSfxAudio"); jest.mock("../../viewport/utils/createShoutAudio"); jest.mock("../../viewport/utils/createTestimonyAudio"); describe("setEmote", () => { const AO_HOST = ""; const client = new Client("127.0.0.1"); const firstExtension = ".gif"; test("Should have a client_def_char_img with a valid source", async () => { fileExists.mockReturnValue(true); document.body.innerHTML = ` `; await setEmote(AO_HOST, client, "salanto", "coding", "(a)", 0, "def"); const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; expect(document.getElementById("client_def_char_img").src).toEqual( expected, ); }); test("Should have a client_pro_char_img to have a valid src", async () => { document.body.innerHTML = ` `; await setEmote(AO_HOST, client, "salanto", "coding", "(a)", 0, "pro"); const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; expect(document.getElementById("client_pro_char_img").src).toEqual( expected, ); }); test("Should have a client_wit_char_img", async () => { document.body.innerHTML = ` `; await setEmote(AO_HOST, client, "salanto", "coding", "(a)", 0, "wit"); const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; expect(document.getElementById("client_wit_char_img").src).toEqual( expected, ); }); test("Should have a client_def_pair_img", async () => { document.body.innerHTML = ` `; await setEmote(AO_HOST, client, "salanto", "coding", "(a)", 1, "def"); const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; expect(document.getElementById("client_def_pair_img").src).toEqual( expected, ); }); test("Should have a client_pro_pair_img", async () => { document.body.innerHTML = ` `; await setEmote(AO_HOST, client, "salanto", "coding", "(a)", 1, "pro"); const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; expect(document.getElementById("client_pro_pair_img").src).toEqual( expected, ); }); test("Should have a client_wit_pair_img", async () => { document.body.innerHTML = ` `; await setEmote(AO_HOST, client, "salanto", "coding", "(a)", 1, "wit"); const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; expect(document.getElementById("client_wit_pair_img").src).toEqual( expected, ); }); test("Should have a client_char_img", async () => { document.body.innerHTML = ` `; await setEmote(AO_HOST, client, "salanto", "coding", "(a)", 0, "notvalid"); const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; expect(document.getElementById("client_char_img").src).toEqual(expected); }); test("Should have a client_pair_img", async () => { document.body.innerHTML = ` `; await setEmote(AO_HOST, client, "salanto", "coding", "(a)", 1, "notvalid"); const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; expect(document.getElementById("client_pair_img").src).toEqual(expected); }); test("Should handle .png urls differently", async () => { fileExists.mockReturnValueOnce(false); document.body.innerHTML = ` `; await setEmote( AO_HOST, client, "salanto", "coding", "prefixNotValid", 1, "notvalid", ); const expected = "http://localhost/characters/salanto/coding.png"; expect(document.getElementById("client_pair_img").src).toEqual(expected); }); test("Should replace character if new character responds", async () => { fileExists.mockReturnValue(false); document.body.innerHTML = ` `; await setEmote( AO_HOST, client, "salanto", "coding", "prefixNotValid", 1, "notvalid", ); const expected = transparentPng; expect(document.getElementById("client_pair_img").src).toEqual(expected); }); });