@xbg.solutions/bpsk-test-utils 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,74 @@
1
+ /**
2
+ * src/lib/test-utils/index.ts
3
+ * Centralized test utilities and common mocks
4
+ *
5
+ * AI SYSTEMS: Import these utilities in test files for consistent mocking patterns
6
+ */
7
+ /**
8
+ * Common console mock for tests that need to spy on console output
9
+ */
10
+ export declare function createConsoleMock(): {
11
+ info: import("vitest").Mock<(...args: any[]) => any>;
12
+ warn: import("vitest").Mock<(...args: any[]) => any>;
13
+ error: import("vitest").Mock<(...args: any[]) => any>;
14
+ log: import("vitest").Mock<(...args: any[]) => any>;
15
+ debug: import("vitest").Mock<(...args: any[]) => any>;
16
+ };
17
+ /**
18
+ * Sets up console mocking for a test suite
19
+ * Call this in beforeEach to mock console methods
20
+ */
21
+ export declare function mockConsole(): {
22
+ mocks: {
23
+ info: import("vitest").Mock<(...args: any[]) => any>;
24
+ warn: import("vitest").Mock<(...args: any[]) => any>;
25
+ error: import("vitest").Mock<(...args: any[]) => any>;
26
+ log: import("vitest").Mock<(...args: any[]) => any>;
27
+ debug: import("vitest").Mock<(...args: any[]) => any>;
28
+ };
29
+ restore: () => void;
30
+ };
31
+ /**
32
+ * Common Firebase auth mock
33
+ */
34
+ export declare function createFirebaseAuthMock(): {
35
+ currentUser: null;
36
+ signInWithEmailAndPassword: import("vitest").Mock<(...args: any[]) => any>;
37
+ createUserWithEmailAndPassword: import("vitest").Mock<(...args: any[]) => any>;
38
+ signOut: import("vitest").Mock<(...args: any[]) => any>;
39
+ onAuthStateChanged: import("vitest").Mock<(...args: any[]) => any>;
40
+ sendPasswordResetEmail: import("vitest").Mock<(...args: any[]) => any>;
41
+ };
42
+ /**
43
+ * Common API response mock factory
44
+ */
45
+ export declare function createApiResponseMock<T>(data: T, status?: number, statusText?: string): Response;
46
+ /**
47
+ * Common fetch mock factory
48
+ */
49
+ export declare function createFetchMock(): import("vitest").Mock<(...args: any[]) => any>;
50
+ /**
51
+ * Helper to wait for async operations in tests
52
+ */
53
+ export declare function waitForAsync(ms?: number): Promise<unknown>;
54
+ /**
55
+ * Helper to flush all pending promises
56
+ */
57
+ export declare function flushPromises(): Promise<unknown>;
58
+ /**
59
+ * Common test timeout values
60
+ */
61
+ export declare const TEST_TIMEOUTS: {
62
+ short: number;
63
+ medium: number;
64
+ long: number;
65
+ };
66
+ /**
67
+ * Helper to create mock Svelte store
68
+ */
69
+ export declare function createMockStore<T>(initialValue: T): {
70
+ subscribe: import("vitest").Mock<(callback: (value: T) => void) => () => boolean>;
71
+ set: import("vitest").Mock<(newValue: T) => void>;
72
+ update: import("vitest").Mock<(updater: (value: T) => T) => void>;
73
+ };
74
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,wBAAgB,iBAAiB;;;;;;EAQhC;AAED;;;GAGG;AACH,wBAAgB,WAAW;;;;;;;;;EA6B1B;AAED;;GAEG;AACH,wBAAgB,sBAAsB;;;;;;;EASrC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,SAAM,EAAE,UAAU,SAAO,GAS/D,QAAQ,CACzB;AAED;;GAEG;AACH,wBAAgB,eAAe,mDAE9B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,SAAI,oBAElC;AAED;;GAEG;AACH,wBAAsB,aAAa,qBAElC;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;CAIzB,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;gDAKlB,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI;0CAKxB,CAAC;4CAIC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;EAK1C"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * src/lib/test-utils/index.ts
3
+ * Centralized test utilities and common mocks
4
+ *
5
+ * AI SYSTEMS: Import these utilities in test files for consistent mocking patterns
6
+ */
7
+ import { vi } from 'vitest';
8
+ /**
9
+ * Common console mock for tests that need to spy on console output
10
+ */
11
+ export function createConsoleMock() {
12
+ return {
13
+ info: vi.fn(),
14
+ warn: vi.fn(),
15
+ error: vi.fn(),
16
+ log: vi.fn(),
17
+ debug: vi.fn()
18
+ };
19
+ }
20
+ /**
21
+ * Sets up console mocking for a test suite
22
+ * Call this in beforeEach to mock console methods
23
+ */
24
+ export function mockConsole() {
25
+ const consoleMock = createConsoleMock();
26
+ // Store original console methods
27
+ const originalConsole = {
28
+ info: console.info,
29
+ warn: console.warn,
30
+ error: console.error,
31
+ log: console.log,
32
+ debug: console.debug
33
+ };
34
+ // Apply mocks
35
+ console.info = consoleMock.info;
36
+ console.warn = consoleMock.warn;
37
+ console.error = consoleMock.error;
38
+ console.log = consoleMock.log;
39
+ console.debug = consoleMock.debug;
40
+ return {
41
+ mocks: consoleMock,
42
+ restore: () => {
43
+ console.info = originalConsole.info;
44
+ console.warn = originalConsole.warn;
45
+ console.error = originalConsole.error;
46
+ console.log = originalConsole.log;
47
+ console.debug = originalConsole.debug;
48
+ }
49
+ };
50
+ }
51
+ /**
52
+ * Common Firebase auth mock
53
+ */
54
+ export function createFirebaseAuthMock() {
55
+ return {
56
+ currentUser: null,
57
+ signInWithEmailAndPassword: vi.fn(),
58
+ createUserWithEmailAndPassword: vi.fn(),
59
+ signOut: vi.fn(),
60
+ onAuthStateChanged: vi.fn(),
61
+ sendPasswordResetEmail: vi.fn()
62
+ };
63
+ }
64
+ /**
65
+ * Common API response mock factory
66
+ */
67
+ export function createApiResponseMock(data, status = 200, statusText = 'OK') {
68
+ return {
69
+ ok: status >= 200 && status < 300,
70
+ status,
71
+ statusText,
72
+ json: vi.fn().mockResolvedValue(data),
73
+ text: vi.fn().mockResolvedValue(JSON.stringify(data)),
74
+ headers: new Headers(),
75
+ url: 'http://localhost:3000/api/test'
76
+ };
77
+ }
78
+ /**
79
+ * Common fetch mock factory
80
+ */
81
+ export function createFetchMock() {
82
+ return vi.fn();
83
+ }
84
+ /**
85
+ * Helper to wait for async operations in tests
86
+ */
87
+ export function waitForAsync(ms = 0) {
88
+ return new Promise(resolve => setTimeout(resolve, ms));
89
+ }
90
+ /**
91
+ * Helper to flush all pending promises
92
+ */
93
+ export async function flushPromises() {
94
+ return new Promise(resolve => setImmediate(resolve));
95
+ }
96
+ /**
97
+ * Common test timeout values
98
+ */
99
+ export const TEST_TIMEOUTS = {
100
+ short: 100,
101
+ medium: 1000,
102
+ long: 5000
103
+ };
104
+ /**
105
+ * Helper to create mock Svelte store
106
+ */
107
+ export function createMockStore(initialValue) {
108
+ let value = initialValue;
109
+ const subscribers = new Set();
110
+ return {
111
+ subscribe: vi.fn((callback) => {
112
+ subscribers.add(callback);
113
+ callback(value);
114
+ return () => subscribers.delete(callback);
115
+ }),
116
+ set: vi.fn((newValue) => {
117
+ value = newValue;
118
+ subscribers.forEach(callback => callback(value));
119
+ }),
120
+ update: vi.fn((updater) => {
121
+ value = updater(value);
122
+ subscribers.forEach(callback => callback(value));
123
+ })
124
+ };
125
+ }
126
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface InitializationHelper {
2
+ isReady: boolean;
3
+ services: string[];
4
+ errors: string[];
5
+ }
6
+ export declare const initializationHelper: import("svelte/store").Writable<InitializationHelper>;
7
+ export declare const createInitializationHelper: () => {
8
+ markReady: () => void;
9
+ addService: (service: string) => void;
10
+ addError: (error: string) => void;
11
+ reset: () => void;
12
+ };
13
+ //# sourceMappingURL=initialization.service.test-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialization.service.test-helper.d.ts","sourceRoot":"","sources":["../../src/helpers/initialization.service.test-helper.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,oBAAoB,uDAI/B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;0BAMb,MAAM;sBAOV,MAAM;;CAe3B,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { writable } from 'svelte/store';
2
+ export const initializationHelper = writable({
3
+ isReady: false,
4
+ services: [],
5
+ errors: []
6
+ });
7
+ export const createInitializationHelper = () => {
8
+ return {
9
+ markReady: () => {
10
+ initializationHelper.update(state => ({ ...state, isReady: true }));
11
+ },
12
+ addService: (service) => {
13
+ initializationHelper.update(state => ({
14
+ ...state,
15
+ services: [...state.services, service]
16
+ }));
17
+ },
18
+ addError: (error) => {
19
+ initializationHelper.update(state => ({
20
+ ...state,
21
+ errors: [...state.errors, error]
22
+ }));
23
+ },
24
+ reset: () => {
25
+ initializationHelper.set({
26
+ isReady: false,
27
+ services: [],
28
+ errors: []
29
+ });
30
+ }
31
+ };
32
+ };
33
+ //# sourceMappingURL=initialization.service.test-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialization.service.test-helper.js","sourceRoot":"","sources":["../../src/helpers/initialization.service.test-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAQxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAuB;IACjE,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,EAAE;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,EAAE;IAC7C,OAAO;QACL,SAAS,EAAE,GAAG,EAAE;YACd,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,UAAU,EAAE,CAAC,OAAe,EAAE,EAAE;YAC9B,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpC,GAAG,KAAK;gBACR,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;aACvC,CAAC,CAAC,CAAC;QACN,CAAC;QAED,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;YAC1B,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpC,GAAG,KAAK;gBACR,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;aACjC,CAAC,CAAC,CAAC;QACN,CAAC;QAED,KAAK,EAAE,GAAG,EAAE;YACV,oBAAoB,CAAC,GAAG,CAAC;gBACvB,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Standard Firebase mock configuration that should be consistent across all tests
3
+ */
4
+ export declare const STANDARD_FIREBASE_MOCKS: {
5
+ getFirebaseAuth: {
6
+ returns: {
7
+ currentUser: null;
8
+ };
9
+ type: string;
10
+ };
11
+ safeGetCurrentUser: {
12
+ returns: {
13
+ success: boolean;
14
+ data: null;
15
+ };
16
+ type: string;
17
+ };
18
+ subscribeToAuthChanges: {
19
+ returns: import("vitest").Mock<(...args: any[]) => any>;
20
+ type: string;
21
+ };
22
+ signOutUser: {
23
+ returns: undefined;
24
+ type: string;
25
+ };
26
+ getIdToken: {
27
+ returns: string;
28
+ type: string;
29
+ };
30
+ initializeFirebase: {
31
+ returns: undefined;
32
+ type: string;
33
+ };
34
+ processFirebaseError: {
35
+ returns: {
36
+ success: boolean;
37
+ error: {
38
+ message: string;
39
+ };
40
+ };
41
+ type: string;
42
+ };
43
+ };
44
+ /**
45
+ * Validates that Firebase mocks are properly configured
46
+ */
47
+ export declare function validateFirebaseMocks(): string[];
48
+ /**
49
+ * Resets and reconfigures Firebase mocks with standard values
50
+ */
51
+ export declare function resetFirebaseMocks(): Promise<boolean>;
52
+ /**
53
+ * Creates a standardized beforeEach hook for Firebase mock validation
54
+ */
55
+ export declare function createFirebaseMockValidation(): () => Promise<void>;
56
+ //# sourceMappingURL=mock-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-validation.d.ts","sourceRoot":"","sources":["../../src/helpers/mock-validation.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQnC,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,aAepC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,qBAmBvC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,wBAI3C"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Mock validation utilities for test isolation
3
+ */
4
+ import { vi } from 'vitest';
5
+ /**
6
+ * Standard Firebase mock configuration that should be consistent across all tests
7
+ */
8
+ export const STANDARD_FIREBASE_MOCKS = {
9
+ getFirebaseAuth: { returns: { currentUser: null }, type: 'resolved' },
10
+ safeGetCurrentUser: { returns: { success: false, data: null }, type: 'resolved' },
11
+ subscribeToAuthChanges: { returns: vi.fn(), type: 'resolved' },
12
+ signOutUser: { returns: undefined, type: 'resolved' },
13
+ getIdToken: { returns: 'mock-token', type: 'resolved' },
14
+ initializeFirebase: { returns: undefined, type: 'resolved' },
15
+ processFirebaseError: { returns: { success: false, error: { message: 'Mock error' } }, type: 'direct' }
16
+ };
17
+ /**
18
+ * Validates that Firebase mocks are properly configured
19
+ */
20
+ export function validateFirebaseMocks() {
21
+ // This function can be called in beforeEach hooks to ensure mock consistency
22
+ const mockChecks = [];
23
+ Object.entries(STANDARD_FIREBASE_MOCKS).forEach(([mockName, config]) => {
24
+ try {
25
+ // Check if mock exists and has correct configuration
26
+ // Note: This is more for documentation than runtime checking
27
+ mockChecks.push(`✓ ${mockName} mock validated`);
28
+ }
29
+ catch (error) {
30
+ mockChecks.push(`✗ ${mockName} mock validation failed: ${error}`);
31
+ }
32
+ });
33
+ return mockChecks;
34
+ }
35
+ /**
36
+ * Resets and reconfigures Firebase mocks with standard values
37
+ */
38
+ export async function resetFirebaseMocks() {
39
+ try {
40
+ const { safeGetCurrentUser, getFirebaseAuth, subscribeToAuthChanges } = await import('@xbg.solutions/bpsk-core');
41
+ // Reset all mocks to ensure clean state
42
+ vi.mocked(safeGetCurrentUser).mockReset();
43
+ vi.mocked(getFirebaseAuth).mockReset();
44
+ vi.mocked(subscribeToAuthChanges).mockReset();
45
+ // Reconfigure with standard values
46
+ vi.mocked(safeGetCurrentUser).mockResolvedValue({ success: false, data: null });
47
+ vi.mocked(getFirebaseAuth).mockResolvedValue({ currentUser: null });
48
+ vi.mocked(subscribeToAuthChanges).mockResolvedValue(vi.fn());
49
+ return true;
50
+ }
51
+ catch (error) {
52
+ console.warn('Failed to reset Firebase mocks:', error);
53
+ return false;
54
+ }
55
+ }
56
+ /**
57
+ * Creates a standardized beforeEach hook for Firebase mock validation
58
+ */
59
+ export function createFirebaseMockValidation() {
60
+ return async () => {
61
+ await resetFirebaseMocks();
62
+ };
63
+ }
64
+ //# sourceMappingURL=mock-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-validation.js","sourceRoot":"","sources":["../../src/helpers/mock-validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE5B;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;IACrE,kBAAkB,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;IACjF,sBAAsB,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;IAC9D,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;IACrD,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE;IACvD,kBAAkB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;IAC5D,oBAAoB,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;CACxG,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,6EAA6E;IAC7E,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE;QACrE,IAAI,CAAC;YACH,qDAAqD;YACrD,6DAA6D;YAC7D,UAAU,CAAC,IAAI,CAAC,KAAK,QAAQ,iBAAiB,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,KAAK,QAAQ,4BAA4B,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAEjH,wCAAwC;QACxC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE,CAAC;QAC1C,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE,CAAC;QACvC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,SAAS,EAAE,CAAC;QAE9C,mCAAmC;QACnC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAS,CAAC,CAAC;QACvF,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAS,CAAC,CAAC;QAC3E,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAS,CAAC,CAAC;QAEpE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,kBAAkB,EAAE,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from './helpers/initialization.service.test-helper';
2
+ export * from './helpers/mock-validation';
3
+ export { createConsoleMock, mockConsole, createFirebaseAuthMock, createApiResponseMock, createFetchMock, waitForAsync, flushPromises, TEST_TIMEOUTS, createMockStore, } from './helpers/index';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2BAA2B,CAAC;AAI1C,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,iBAAiB,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,8 @@
1
+ // Test utils barrel exports
2
+ // Helpers - import from leaf files directly to avoid circular deps
3
+ export * from './helpers/initialization.service.test-helper';
4
+ export * from './helpers/mock-validation';
5
+ // Re-export the shared test utilities from helpers/index
6
+ // (createConsoleMock, mockConsole, createFirebaseAuthMock, etc.)
7
+ export { createConsoleMock, mockConsole, createFirebaseAuthMock, createApiResponseMock, createFetchMock, waitForAsync, flushPromises, TEST_TIMEOUTS, createMockStore, } from './helpers/index';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAE5B,mEAAmE;AACnE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2BAA2B,CAAC;AAE1C,yDAAyD;AACzD,iEAAiE;AACjE,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,iBAAiB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@xbg.solutions/bpsk-test-utils",
3
+ "version": "1.2.3",
4
+ "description": "XBG Frontend Test Utilities - Mocks, helpers, and test fixtures",
5
+ "main": "lib/index.js",
6
+ "types": "lib/index.d.ts",
7
+ "type": "module",
8
+ "files": ["lib"],
9
+ "scripts": {
10
+ "build": "tsc",
11
+ "build:watch": "tsc --watch",
12
+ "clean": "rm -rf lib",
13
+ "prepublishOnly": "npm run build"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "dependencies": {
19
+ "@xbg.solutions/bpsk-core": "^1.0.0"
20
+ },
21
+ "peerDependencies": {
22
+ "vitest": "^3.0.0", "svelte": "^5.0.0"
23
+ }
24
+ }