From efe262debac735bd98d0f00db52f97c07798ecb1 Mon Sep 17 00:00:00 2001 From: Nico <60229704+Marchand-Nicolas@users.noreply.github.com> Date: Fri, 27 Dec 2024 19:26:26 +0100 Subject: [PATCH] add tests --- tests/utils/braavosMobile.test.js | 86 +++++++++++++++++++++++++++++++ utils/braavosMobile.ts | 2 +- 2 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 tests/utils/braavosMobile.test.js diff --git a/tests/utils/braavosMobile.test.js b/tests/utils/braavosMobile.test.js new file mode 100644 index 00000000..f7511826 --- /dev/null +++ b/tests/utils/braavosMobile.test.js @@ -0,0 +1,86 @@ +import { mainnet, sepolia } from "@starknet-react/chains"; +import { + ConnectorNotConnectedError, + UserNotConnectedError, +} from "@starknet-react/core"; +import { BraavosMobileConnector, getBraavosMobile } from "@utils/braavosMobile"; + +describe("BraavosMobileConnector class", () => { + let connector; + + beforeEach(() => { + connector = new BraavosMobileConnector(); + }); + + describe("id getter", () => { + it("should return 'braavosMobile'", () => { + expect(connector.id).toBe("braavosMobile"); + }); + }); + + describe("icon getter", () => { + it("should return the same icon for light and dark modes", () => { + expect(connector.icon.light).toBeDefined(); + expect(connector.icon.dark).toBeDefined(); + expect(connector.icon.light).toBe(connector.icon.dark); + }); + }); + + describe("name getter", () => { + it("should return 'Braavos (mobile)'", () => { + expect(connector.name).toBe("Braavos (mobile)"); + }); + }); + + describe("available method", () => { + it("should return true", () => { + expect(connector.available()).toBe(true); + }); + }); + + describe("wallet getter", () => { + it("should throw a ConnectorNotConnectedError", () => { + expect(() => connector.wallet).toThrow(ConnectorNotConnectedError); + }); + }); + + describe("disconnect method", () => { + it("should throw a UserNotConnectedError", () => { + expect(() => connector.disconnect()).toThrow(UserNotConnectedError); + }); + }); + + describe("account method", () => { + it("should throw a ConnectorNotConnectedError", () => { + expect(() => connector.account()).toThrow(ConnectorNotConnectedError); + }); + }); + + describe("chainId method", () => { + it("should return sepolia.id when NEXT_PUBLIC_IS_TESTNET is 'true'", async () => { + process.env.NEXT_PUBLIC_IS_TESTNET = "true"; + const result = await connector.chainId(); + expect(result).toBe(sepolia.id); + }); + + it("should return mainnet.id when NEXT_PUBLIC_IS_TESTNET is not 'true'", async () => { + process.env.NEXT_PUBLIC_IS_TESTNET = "false"; + const result = await connector.chainId(); + expect(result).toBe(mainnet.id); + }); + }); + + describe("ready method", () => { + it("should return true as a Promise", async () => { + const result = await connector.ready(); + expect(result).toBe(true); + }); + }); +}); + +describe("getBraavosMobile function", () => { + it("should return an instance of BraavosMobileConnector", () => { + const instance = getBraavosMobile(); + expect(instance).toBeInstanceOf(BraavosMobileConnector); + }); +}); diff --git a/utils/braavosMobile.ts b/utils/braavosMobile.ts index 571ebab6..f9031c6d 100644 --- a/utils/braavosMobile.ts +++ b/utils/braavosMobile.ts @@ -10,7 +10,7 @@ export const braavosMobileIcon = "data:image/png;base64,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"; // @ts-ignore -class BraavosMobileConnector extends Connector { +export class BraavosMobileConnector extends Connector { get id(): string { return "braavosMobile"; }