From 4ca533fac3bd429231e2d7ff47ee141f6441e545 Mon Sep 17 00:00:00 2001 From: Nandor_Czegledi Date: Mon, 16 Jun 2025 12:17:28 +0200 Subject: [PATCH] test(theme-registry): migrate old ThemeRegistry tests --- package-lock.json | 4 +- packages/theme-registry/package.json | 4 +- .../ThemeRegistry.test.tsx} | 37 ++++++++++++++----- packages/theme-registry/tsconfig.build.json | 3 -- 4 files changed, 33 insertions(+), 15 deletions(-) rename packages/theme-registry/src/{__old-tests__/ThemeRegistry.test.ts => __tests__/ThemeRegistry.test.tsx} (78%) diff --git a/package-lock.json b/package-lock.json index 33aeebae05..4aa8c453db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34893,7 +34893,9 @@ }, "devDependencies": { "@instructure/ui-babel-preset": "10.20.1", - "@instructure/ui-test-utils": "10.20.1" + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/react": "^16.0.1", + "vitest": "^3.2.2" } }, "packages/ui": { diff --git a/packages/theme-registry/package.json b/packages/theme-registry/package.json index f190443894..993e4c98b4 100644 --- a/packages/theme-registry/package.json +++ b/packages/theme-registry/package.json @@ -28,6 +28,8 @@ }, "devDependencies": { "@instructure/ui-babel-preset": "10.20.1", - "@instructure/ui-test-utils": "10.20.1" + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/react": "^16.0.1", + "vitest": "^3.2.2" } } diff --git a/packages/theme-registry/src/__old-tests__/ThemeRegistry.test.ts b/packages/theme-registry/src/__tests__/ThemeRegistry.test.tsx similarity index 78% rename from packages/theme-registry/src/__old-tests__/ThemeRegistry.test.ts rename to packages/theme-registry/src/__tests__/ThemeRegistry.test.tsx index b26969de64..b82082b65a 100644 --- a/packages/theme-registry/src/__old-tests__/ThemeRegistry.test.ts +++ b/packages/theme-registry/src/__tests__/ThemeRegistry.test.tsx @@ -21,8 +21,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +import { vi, expect } from 'vitest' +import type { MockInstance } from 'vitest' import type { BaseTheme } from '@instructure/shared-types' -import { expect } from '@instructure/ui-test-utils' import { ThemeRegistry } from '../ThemeRegistry' const defaultRegistry = ThemeRegistry.getRegistry() @@ -40,17 +41,33 @@ const baseTheme = { } describe('ThemeRegistry', () => { + let consoleWarningMock: ReturnType + let consoleErrorMock: ReturnType + beforeEach(() => { ThemeRegistry.clearRegistry() + + // Mocking console to prevent test output pollution + consoleWarningMock = vi + .spyOn(console, 'warn') + .mockImplementation(() => {}) as MockInstance + consoleErrorMock = vi + .spyOn(console, 'error') + .mockImplementation(() => {}) as MockInstance }) + afterEach(() => { ThemeRegistry.setRegistry(defaultRegistry) + + consoleWarningMock.mockRestore() + consoleErrorMock.mockRestore() }) + it('should instantiate registry correctly', async () => { const registry = ThemeRegistry.getRegistry() - expect(registry).to.not.be.empty() - expect(registry).to.eql({ + expect(registry).not.toEqual({}) + expect(registry).toEqual({ currentThemeKey: null, themes: {}, registered: [] @@ -69,9 +86,9 @@ describe('ThemeRegistry', () => { ThemeRegistry.registerTheme(theme as unknown as BaseTheme) const registry = ThemeRegistry.getRegistry() - expect(registry.registered).to.contain(theme.key) - expect(registry.themes).to.have.key(theme.key) - expect(registry.themes[theme.key]).to.not.be.empty() + expect(registry.registered).toContain(theme.key) + expect(Object.keys(registry.themes)).toContain(theme.key) + expect(registry.themes[theme.key]).not.toEqual({}) }) it('should be able to get the current theme', async () => { @@ -90,8 +107,8 @@ describe('ThemeRegistry', () => { const registry = ThemeRegistry.getRegistry() - expect(registry.currentThemeKey).to.be.eq(theme.key) - expect(ThemeRegistry.getCurrentTheme()).to.be.eql(registeredTheme) + expect(registry.currentThemeKey).toBe(theme.key) + expect(ThemeRegistry.getCurrentTheme()).toEqual(registeredTheme) }) it('should be able to override themes with ".use()"', async () => { @@ -115,7 +132,7 @@ describe('ThemeRegistry', () => { } } }) - expect(ThemeRegistry.getCurrentTheme()?.colors?.primitives?.white).to.be.eq( + expect(ThemeRegistry.getCurrentTheme()?.colors?.primitives?.white).toBe( 'blue' ) }) @@ -130,6 +147,6 @@ describe('ThemeRegistry', () => { theme as unknown as BaseTheme ) registeredTheme.use() - }).to.throw(Error) + }).toThrow(Error) }) }) diff --git a/packages/theme-registry/tsconfig.build.json b/packages/theme-registry/tsconfig.build.json index eed065a1b0..75e9b08556 100644 --- a/packages/theme-registry/tsconfig.build.json +++ b/packages/theme-registry/tsconfig.build.json @@ -13,9 +13,6 @@ { "path": "../ui-babel-preset/tsconfig.build.json" }, - { - "path": "../ui-test-utils/tsconfig.build.json" - }, { "path": "../shared-types/tsconfig.build.json" },