Bluesky app fork with some witchin' additions 馃挮 witchsky.app
bluesky fork client
119
fork

Configure Feed

Select the types of activity you want to include in your feed.

at a876aae44ea07494ebea9727350aa060b81f317b 87 lines 2.6 kB view raw
1import {beforeEach, describe, expect, it, jest} from '@jest/globals' 2 3jest.mock('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})