Skip to content

Commit 0f70bab

Browse files
test: fix tests
1 parent f84e6ed commit 0f70bab

File tree

2 files changed

+40
-10
lines changed

2 files changed

+40
-10
lines changed

src/db/encryption/config.test.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,24 @@
1-
import { afterEach, describe, expect, it } from 'bun:test'
1+
import { afterEach, describe, expect, it, mock } from 'bun:test'
2+
3+
// Other test files mock the @/db/encryption barrel with isEncryptionEnabled: () => true.
4+
// Bun's mock.module leaks across files and replaces the underlying config module too.
5+
// Re-provide the real implementation here so these tests exercise actual localStorage logic.
6+
const e2eeStorageKey = 'e2ee_enabled'
7+
8+
mock.module('@/db/encryption/config', () => ({
9+
isEncryptionEnabled: () => localStorage.getItem(e2eeStorageKey) === 'true',
10+
setEncryptionEnabled: (enabled: boolean) => localStorage.setItem(e2eeStorageKey, String(enabled)),
11+
needsSyncSetupWizard: async () => false,
12+
encryptedColumnsMap: {},
13+
}))
14+
15+
mock.module('@/db/encryption', () => ({
16+
isEncryptionEnabled: () => localStorage.getItem(e2eeStorageKey) === 'true',
17+
setEncryptionEnabled: (enabled: boolean) => localStorage.setItem(e2eeStorageKey, String(enabled)),
18+
needsSyncSetupWizard: async () => false,
19+
encryptedColumnsMap: {},
20+
}))
21+
222
import { isEncryptionEnabled, setEncryptionEnabled } from './config'
323

424
describe('encryption config', () => {

src/db/powersync/database.test.ts

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
1-
import { afterEach, describe, expect, it } from 'bun:test'
2-
import { getPowerSyncDatabaseConfig, getPowerSyncOptions } from './database'
1+
import { describe, expect, it, mock } from 'bun:test'
32
import { WASQLiteOpenFactory } from '@powersync/web'
43

5-
const setE2EE = (enabled: boolean) => localStorage.setItem('e2ee_enabled', String(enabled))
4+
// Control E2EE flag directly — avoids contamination from other test files
5+
// that mock the @/db/encryption barrel with isEncryptionEnabled: () => true
6+
let mockE2EEEnabled = false
7+
8+
mock.module('@/db/encryption/config', () => ({
9+
isEncryptionEnabled: () => mockE2EEEnabled,
10+
setEncryptionEnabled: () => {},
11+
needsSyncSetupWizard: async () => false,
12+
encryptedColumnsMap: {},
13+
}))
14+
15+
import { getPowerSyncDatabaseConfig, getPowerSyncOptions } from './database'
616

717
describe('getPowerSyncDatabaseConfig', () => {
818
it('returns default for web + Chrome', () => {
@@ -39,8 +49,6 @@ describe('getPowerSyncDatabaseConfig', () => {
3949
})
4050

4151
describe('getPowerSyncOptions', () => {
42-
afterEach(() => localStorage.removeItem('e2ee_enabled'))
43-
4452
describe('default config (web + non-Safari)', () => {
4553
it('returns database with dbFilename and schema', () => {
4654
const options = getPowerSyncOptions('opfs/thunderbolt-sync.db', 'default')
@@ -64,15 +72,16 @@ describe('getPowerSyncOptions', () => {
6472
})
6573

6674
it('includes custom SharedWorker and transformers when E2EE is enabled', () => {
67-
setE2EE(true)
75+
mockE2EEEnabled = true
6876
const options = getPowerSyncOptions('thunderbolt.db', 'default')
6977
expect(options).toHaveProperty('sync')
7078
expect(options.sync).toHaveProperty('worker')
7179
expect(options).toHaveProperty('transformers')
80+
mockE2EEEnabled = false
7281
})
7382

7483
it('omits custom SharedWorker and transformers when E2EE is disabled', () => {
75-
setE2EE(false)
84+
mockE2EEEnabled = false
7685
const options = getPowerSyncOptions('thunderbolt.db', 'default')
7786
expect(options).not.toHaveProperty('sync')
7887
expect(options).not.toHaveProperty('transformers')
@@ -97,13 +106,14 @@ describe('getPowerSyncOptions', () => {
97106
})
98107

99108
it('includes transformers when E2EE is enabled', () => {
100-
setE2EE(true)
109+
mockE2EEEnabled = true
101110
const options = getPowerSyncOptions('thunderbolt.db', 'safari-tauri')
102111
expect(options).toHaveProperty('transformers')
112+
mockE2EEEnabled = false
103113
})
104114

105115
it('omits transformers when E2EE is disabled', () => {
106-
setE2EE(false)
116+
mockE2EEEnabled = false
107117
const options = getPowerSyncOptions('thunderbolt.db', 'safari-tauri')
108118
expect(options).not.toHaveProperty('transformers')
109119
})

0 commit comments

Comments
 (0)