Bluesky app fork with some witchin' additions 馃挮 witchsky.app
bluesky fork client
at main 87 lines 2.7 kB view raw
1import {beforeEach, describe, expect, it, jest} from '@jest/globals' 2 3jest.mock('@bsky.app/react-native-mmkv', () => ({ 4 MMKV: class MMKVMock { 5 _store = new Map<string, string>() 6 7 getString(key: string) { 8 return this._store.get(key) 9 } 10 11 set(key: string, value: string) { 12 this._store.set(key, value) 13 } 14 15 delete(key: string) { 16 this._store.delete(key) 17 } 18 19 clearAll() { 20 this._store.clear() 21 } 22 }, 23})) 24 25import {createPersistedQueryStorage} from '../persisted-query-storage' 26 27describe('createPersistedQueryStorage', () => { 28 it('should create isolated storage instances', async () => { 29 const storage1 = createPersistedQueryStorage('store1') 30 const storage2 = createPersistedQueryStorage('store2') 31 32 await storage1.setItem('key', 'value1') 33 await storage2.setItem('key', 'value2') 34 35 expect(await storage1.getItem('key')).toBe('value1') 36 expect(await storage2.getItem('key')).toBe('value2') 37 }) 38 39 describe('storage operations', () => { 40 let storage: ReturnType<typeof createPersistedQueryStorage> 41 42 beforeEach(() => { 43 storage = createPersistedQueryStorage('test_store') 44 }) 45 46 it('should return null for non-existent keys', async () => { 47 const result = await storage.getItem('non-existent-key') 48 expect(result).toBeNull() 49 }) 50 51 it('should store and retrieve a value', async () => { 52 const testValue = JSON.stringify({data: 'test'}) 53 await storage.setItem('test-key', testValue) 54 const result = await storage.getItem('test-key') 55 expect(result).toBe(testValue) 56 }) 57 58 it('should remove a value', async () => { 59 const testValue = JSON.stringify({data: 'test'}) 60 await storage.setItem('test-key', testValue) 61 await storage.removeItem('test-key') 62 const result = await storage.getItem('test-key') 63 expect(result).toBeNull() 64 }) 65 66 it('should handle complex JSON data', async () => { 67 const complexData = JSON.stringify({ 68 queries: [ 69 {key: 'query1', data: {nested: {value: 123}}}, 70 {key: 'query2', data: {array: [1, 2, 3]}}, 71 ], 72 timestamp: Date.now(), 73 }) 74 await storage.setItem('complex-key', complexData) 75 const result = await storage.getItem('complex-key') 76 expect(result).toBe(complexData) 77 expect(JSON.parse(result!)).toEqual(JSON.parse(complexData)) 78 }) 79 80 it('should overwrite existing values', async () => { 81 await storage.setItem('test-key', 'value1') 82 await storage.setItem('test-key', 'value2') 83 const result = await storage.getItem('test-key') 84 expect(result).toBe('value2') 85 }) 86 }) 87})