Skip to content

Commit 6378236

Browse files
committed
test fix
1 parent 6bc002a commit 6378236

6 files changed

+38
-25
lines changed

lib/vuid/vuid_manager.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,17 +92,20 @@ export class VuidCacheManager {
9292

9393
export type VuidManagerConfig = {
9494
enableVuid?: boolean;
95+
vuidCache: Cache<string>;
9596
vuidCacheManager: VuidCacheManager;
9697
}
9798

9899
export class DefaultVuidManager implements VuidManager {
99100
private vuidCacheManager: VuidCacheManager;
100101
private vuid?: string;
102+
private vuidCache: Cache<string>;
101103
private vuidEnabled = false;
102104

103105
constructor(config: VuidManagerConfig) {
104106
this.vuidCacheManager = config.vuidCacheManager;
105107
this.vuidEnabled = config.enableVuid || false;
108+
this.vuidCache = config.vuidCache;
106109
}
107110

108111
getVuid(): Maybe<string> {
@@ -118,6 +121,7 @@ export class DefaultVuidManager implements VuidManager {
118121
* @returns Promise that resolves when the VuidManager is initialized
119122
*/
120123
async initialize(): Promise<void> {
124+
this.vuidCacheManager.setCache(this.vuidCache);
121125
if (!this.vuidEnabled) {
122126
await this.vuidCacheManager.remove();
123127
return;

lib/vuid/vuid_manager_factory.browser.spec.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ vi.mock('./vuid_manager', () => {
1313
};
1414
});
1515

16+
import { getMockSyncCache } from '../tests/mock/mock_cache';
1617
import { createVuidManager } from './vuid_manager_factory.browser';
1718
import { LocalStorageCache } from '../utils/cache/local_storage_cache.browser';
1819
import { DefaultVuidManager, VuidCacheManager } from './vuid_manager';
@@ -23,6 +24,7 @@ describe('createVuidManager', () => {
2324
const MockDefaultVuidManager = vi.mocked(DefaultVuidManager);
2425

2526
beforeEach(() => {
27+
MockLocalStorageCache.mockClear();
2628
MockDefaultVuidManager.mockClear();
2729
});
2830

@@ -36,15 +38,18 @@ describe('createVuidManager', () => {
3638
expect(MockDefaultVuidManager.mock.calls[1][0].enableVuid).toBe(false);
3739
});
3840

39-
it('should use a VuidCacheManager with a LocalStorageCache', () => {
40-
const manager = createVuidManager({ enableVuid: true });
41+
it('should use the provided cache', () => {
42+
const cache = getMockSyncCache<string>();
43+
const manager = createVuidManager({ enableVuid: true, vuidCache: cache });
4144
expect(manager).toBe(MockDefaultVuidManager.mock.instances[0]);
45+
expect(MockDefaultVuidManager.mock.calls[0][0].vuidCache).toBe(cache);
46+
});
4247

48+
it('should use a LocalStorageCache if no cache is provided', () => {
49+
const manager = createVuidManager({ enableVuid: true });
50+
expect(manager).toBe(MockDefaultVuidManager.mock.instances[0]);
4351

44-
const usedCacheManager = MockDefaultVuidManager.mock.calls[0][0].vuidCacheManager;
45-
expect(usedCacheManager).toBe(MockVuidCacheManager.mock.instances[0]);
46-
47-
const usedCache = MockVuidCacheManager.mock.calls[0][0];
52+
const usedCache = MockDefaultVuidManager.mock.calls[0][0].vuidCache;
4853
expect(usedCache).toBe(MockLocalStorageCache.mock.instances[0]);
4954
});
5055

lib/vuid/vuid_manager_factory.browser.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,12 @@ import { DefaultVuidManager, VuidCacheManager, VuidManager } from './vuid_manage
1717
import { LocalStorageCache } from '../utils/cache/local_storage_cache.browser';
1818
import { VuidManagerOptions } from './vuid_manager_factory';
1919

20-
export const vuidCacheManager = new VuidCacheManager(new LocalStorageCache<string>());
20+
export const vuidCacheManager = new VuidCacheManager();
2121

2222
export const createVuidManager = (options: VuidManagerOptions): VuidManager => {
23-
if (options.vuidCache) {
24-
vuidCacheManager.setCache(options.vuidCache);
25-
}
26-
2723
return new DefaultVuidManager({
2824
vuidCacheManager,
25+
vuidCache: options.vuidCache || new LocalStorageCache<string>(),
2926
enableVuid: options.enableVuid
3027
});
3128
}

lib/vuid/vuid_manager_factory.react_native.spec.ts

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { vi, describe, expect, it, beforeEach } from 'vitest';
22

3-
vi.mock('../utils/cache/local_storage_cache.react_native', () => {
3+
vi.mock('../utils/cache/async_storage_cache.react_native', () => {
44
return {
5-
LocalStorageCache: vi.fn(),
5+
AsyncStorageCache: vi.fn(),
66
};
77
});
88

@@ -13,16 +13,19 @@ vi.mock('./vuid_manager', () => {
1313
};
1414
});
1515

16-
import { createVuidManager } from './vuid_manager_factory.browser';
17-
import { Async}
16+
import { getMockAsyncCache } from '../tests/mock/mock_cache';
17+
import { createVuidManager } from './vuid_manager_factory.react_native';
18+
import { AsyncStorageCache } from '../utils/cache/async_storage_cache.react_native';
19+
1820
import { DefaultVuidManager, VuidCacheManager } from './vuid_manager';
1921

2022
describe('createVuidManager', () => {
2123
const MockVuidCacheManager = vi.mocked(VuidCacheManager);
22-
const MockLocalStorageCache = vi.mocked(LocalStorageCache);
24+
const MockAsyncStorageCache = vi.mocked(AsyncStorageCache);
2325
const MockDefaultVuidManager = vi.mocked(DefaultVuidManager);
2426

2527
beforeEach(() => {
28+
MockAsyncStorageCache.mockClear();
2629
MockDefaultVuidManager.mockClear();
2730
});
2831

@@ -36,16 +39,19 @@ describe('createVuidManager', () => {
3639
expect(MockDefaultVuidManager.mock.calls[1][0].enableVuid).toBe(false);
3740
});
3841

39-
it('should use a VuidCacheManager with a LocalStorageCache', () => {
40-
const manager = createVuidManager({ enableVuid: true });
42+
it('should use the provided cache', () => {
43+
const cache = getMockAsyncCache<string>();
44+
const manager = createVuidManager({ enableVuid: true, vuidCache: cache });
4145
expect(manager).toBe(MockDefaultVuidManager.mock.instances[0]);
46+
expect(MockDefaultVuidManager.mock.calls[0][0].vuidCache).toBe(cache);
47+
});
4248

49+
it('should use a AsyncStorageCache if no cache is provided', () => {
50+
const manager = createVuidManager({ enableVuid: true });
51+
expect(manager).toBe(MockDefaultVuidManager.mock.instances[0]);
4352

44-
const usedCacheManager = MockDefaultVuidManager.mock.calls[0][0].vuidCacheManager;
45-
expect(usedCacheManager).toBe(MockVuidCacheManager.mock.instances[0]);
46-
47-
const usedCache = MockVuidCacheManager.mock.calls[0][0];
48-
expect(usedCache).toBe(MockLocalStorageCache.mock.instances[0]);
53+
const usedCache = MockDefaultVuidManager.mock.calls[0][0].vuidCache;
54+
expect(usedCache).toBe(MockAsyncStorageCache.mock.instances[0]);
4955
});
5056

5157
it('should use a single VuidCacheManager instance for all VuidManager instances', () => {

lib/vuid/vuid_manager_factory.react_native.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@ import { DefaultVuidManager, VuidCacheManager, VuidManager } from './vuid_manage
1717
import { AsyncStorageCache } from '../utils/cache/async_storage_cache.react_native';
1818
import { VuidManagerOptions } from './vuid_manager_factory';
1919

20-
export const vuidCacheManager = new VuidCacheManager(new AsyncStorageCache<string>());
20+
export const vuidCacheManager = new VuidCacheManager();
2121

2222
export const createVuidManager = (options: VuidManagerOptions): VuidManager => {
2323
return new DefaultVuidManager({
2424
vuidCacheManager,
25+
vuidCache: options.vuidCache || new AsyncStorageCache<string>(),
2526
enableVuid: options.enableVuid
2627
});
2728
}

vitest.config.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export default defineConfig({
2020
test: {
2121
onConsoleLog: () => true,
2222
environment: 'happy-dom',
23-
include: ['**/vuid_manager_factory.browser.spec.ts'],
23+
include: ['**/vuid_manager_factory.react_native.spec.ts'],
2424
typecheck: {
2525
tsconfig: 'tsconfig.spec.json',
2626
},

0 commit comments

Comments
 (0)