Skip to content

Commit 2f8d760

Browse files
committed
chore(chrome-extension): Replace Jest with Vitest
1 parent ef501a7 commit 2f8d760

File tree

12 files changed

+218
-220
lines changed

12 files changed

+218
-220
lines changed

.changeset/brown-icons-shine.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
---

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@
146146
"typescript-eslint": "8.38.0",
147147
"uuid": "8.3.2",
148148
"verdaccio": "^5.33.0",
149-
"vitest": "3.0.5",
149+
"vitest": "3.2.4",
150150
"yalc": "1.0.0-pre.53",
151151
"zx": "catalog:repo"
152152
},

packages/chrome-extension/jest.config.js

Lines changed: 0 additions & 24 deletions
This file was deleted.

packages/chrome-extension/package.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,8 @@
4444
"lint:attw": "attw --pack . --profile node16",
4545
"lint:publint": "publint",
4646
"publish:local": "pnpm yalc push --replace --sig",
47-
"test": "jest",
48-
"test:cache:clear": "jest --clearCache --useStderr",
49-
"test:ci": "jest --maxWorkers=70%",
50-
"test:coverage": "jest --collectCoverage && open coverage/lcov-report/index.html"
47+
"test": "vitest",
48+
"test:ci": "vitest run --maxWorkers=70%"
5149
},
5250
"dependencies": {
5351
"@clerk/clerk-js": "workspace:^",

packages/chrome-extension/src/__tests__/__snapshots__/exports.test.ts.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
// Jest Snapshot v1, https://goo.gl/fbAQLP
1+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
22

3-
exports[`public exports should not include a breaking change 1`] = `
3+
exports[`public exports > should not include a breaking change 1`] = `
44
[
55
"APIKeys",
66
"AuthenticateWithRedirectCallback",

packages/chrome-extension/src/__tests__/exports.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { describe, expect, it } from 'vitest';
2+
13
import * as publicExports from '../index';
24

35
describe('public exports', () => {

packages/chrome-extension/src/internal/utils/__tests__/cookies.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { describe, expect, test, afterEach, afterAll, vi } from 'vitest';
12
import browser from 'webextension-polyfill';
23

34
import { getClientCookie } from '../cookies';
@@ -24,7 +25,7 @@ describe('Cookies', () => {
2425
const name = '__client';
2526
const cookie = createCookie({ name, value: 'foo', domain });
2627

27-
const getMock = jest.mocked(browser.cookies.get);
28+
const getMock = vi.mocked(browser.cookies.get);
2829

2930
afterEach(() => getMock.mockReset());
3031
afterAll(() => getMock.mockRestore());

packages/chrome-extension/src/internal/utils/__tests__/manifest.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { describe, expect, test } from 'vitest';
12
import type { Manifest } from 'webextension-polyfill';
23

34
import { missingManifestKeyError } from '../errors';

packages/chrome-extension/src/internal/utils/__tests__/storage.test.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { describe, expect, test, vi, afterEach } from 'vitest';
12
import browser from 'webextension-polyfill';
23

34
import { BrowserStorageCache, MemoryStorageCache } from '../storage';
@@ -21,7 +22,7 @@ describe('StorageCache', () => {
2122

2223
describe('set', () => {
2324
test('setting the storage cache', async () => {
24-
const setMock = jest.mocked(browser.storage.local.set).mockResolvedValueOnce(_void);
25+
const setMock = vi.mocked(browser.storage.local.set).mockResolvedValueOnce(_void);
2526

2627
expect(await BrowserStorageCache.set(KEY, VALUE)).toBe(_void);
2728
expect(setMock).toHaveBeenCalledTimes(1);
@@ -31,7 +32,7 @@ describe('StorageCache', () => {
3132

3233
describe('remove', () => {
3334
test('removing from the storage cache', async () => {
34-
const removeMock = jest.mocked(browser.storage.local.remove).mockResolvedValueOnce(_void);
35+
const removeMock = vi.mocked(browser.storage.local.remove).mockResolvedValueOnce(_void);
3536

3637
expect(await BrowserStorageCache.remove(KEY)).toBe(_void);
3738
expect(removeMock).toHaveBeenCalledTimes(1);
@@ -40,16 +41,20 @@ describe('StorageCache', () => {
4041
});
4142

4243
describe('get', () => {
44+
afterEach(() => {
45+
vi.restoreAllMocks();
46+
});
47+
4348
test('value missing', async () => {
44-
const getMock = jest.mocked(browser.storage.local.get).mockResolvedValue({});
49+
const getMock = vi.mocked(browser.storage.local.get).mockResolvedValue({});
4550

4651
expect(await BrowserStorageCache.get(KEY)).toBeUndefined();
4752
expect(getMock).toHaveBeenCalledTimes(1);
4853
expect(getMock).toHaveBeenCalledWith(KEY);
4954
});
5055

5156
test('value exists', async () => {
52-
const getMock = jest.mocked(browser.storage.local.get).mockResolvedValue({ [KEY]: VALUE });
57+
const getMock = vi.mocked(browser.storage.local.get).mockResolvedValue({ [KEY]: VALUE });
5358

5459
expect(await BrowserStorageCache.get(KEY)).toBe(VALUE);
5560
expect(getMock).toHaveBeenCalledTimes(1);
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { defineConfig } from 'vitest/config';
2+
import { readFileSync } from 'node:fs';
3+
4+
const { name, version } = JSON.parse(readFileSync('./package.json', 'utf8'));
5+
6+
export default defineConfig({
7+
plugins: [],
8+
define: {
9+
PACKAGE_NAME: JSON.stringify(name),
10+
PACKAGE_VERSION: JSON.stringify(version),
11+
},
12+
test: {
13+
typecheck: {
14+
enabled: true,
15+
tsconfig: './tsconfig.test.json',
16+
include: ['**/*.test.{ts,tsx}'],
17+
},
18+
env: {
19+
CLERK_SECRET_KEY: 'TEST_SECRET_KEY',
20+
},
21+
environment: 'jsdom',
22+
includeSource: ['**/*.{js,ts,jsx,tsx}'],
23+
setupFiles: './vitest.setup.mts',
24+
},
25+
});

0 commit comments

Comments
 (0)