diff --git a/__mocks__/react-native-default-preference.js b/__mocks__/react-native-default-preference.js index 9192a53..a3e47d7 100644 --- a/__mocks__/react-native-default-preference.js +++ b/__mocks__/react-native-default-preference.js @@ -16,58 +16,57 @@ const DefaultPreference = { return Promise.resolve(); }), - getName: jest.fn((name) => { - return Promise.resolve(name || 'default'); // Return provided name or 'default' + getName: jest.fn(() => { + return Promise.resolve('default'); }), - get: jest.fn((name, key) => { - const suite = getSuite(name || 'default'); + get: jest.fn((key) => { + const suite = getSuite('default'); return Promise.resolve(suite.hasOwnProperty(key) ? suite[key] : null); }), - set: jest.fn((name, key, value) => { - const suite = getSuite(name || 'default'); + set: jest.fn((key, value) => { + const suite = getSuite('default'); suite[key] = value; return Promise.resolve(); }), - clear: jest.fn((name, key) => { - const suite = getSuite(name || 'default'); + clear: jest.fn((key) => { + const suite = getSuite('default'); delete suite[key]; return Promise.resolve(); }), - getMultiple: jest.fn((name, keys) => { - const suite = getSuite(name || 'default'); + getMultiple: jest.fn((keys) => { + const suite = getSuite('default'); const values = keys.map(key => (suite.hasOwnProperty(key) ? suite[key] : null)); return Promise.resolve(values); }), - setMultiple: jest.fn((name, keyValuePairs) => { - const suite = getSuite(name || 'default'); + setMultiple: jest.fn((keyValuePairs) => { + const suite = getSuite('default'); Object.entries(keyValuePairs).forEach(([key, value]) => { suite[key] = value; }); return Promise.resolve(); }), - clearMultiple: jest.fn((name, keys) => { - const suite = getSuite(name || 'default'); + clearMultiple: jest.fn((keys) => { + const suite = getSuite('default'); keys.forEach(key => delete suite[key]); return Promise.resolve(); }), - getAll: jest.fn((name) => { - const suite = getSuite(name || 'default'); + getAll: jest.fn(() => { + const suite = getSuite('default'); return Promise.resolve({ ...suite }); }), - clearAll: jest.fn((name) => { - mockPreferences[name || 'default'] = {}; + clearAll: jest.fn(() => { + mockPreferences['default'] = {}; return Promise.resolve(); }), - // Add reset method to clear all suites reset: jest.fn(() => { mockPreferences = {}; }), diff --git a/android/src/main/java/com/kevinresol/react_native_default_preference/RNDefaultPreferenceModule.java b/android/src/main/java/com/kevinresol/react_native_default_preference/RNDefaultPreferenceModule.java index e4b8fc5..674c39d 100644 --- a/android/src/main/java/com/kevinresol/react_native_default_preference/RNDefaultPreferenceModule.java +++ b/android/src/main/java/com/kevinresol/react_native_default_preference/RNDefaultPreferenceModule.java @@ -57,8 +57,8 @@ public class RNDefaultPreferenceModule extends ReactContextBaseJavaModule { Preferences preferences = dataStore.data.first(); Preferences.Key stringKey = PreferencesKeys.stringKey(key); Preferences.Key booleanKey = PreferencesKeys.booleanKey(key); - String stringValue = preferences[stringKey]; - Boolean booleanValue = preferences[booleanKey]; + String stringValue = preferences.get(stringKey); + Boolean booleanValue = preferences.get(booleanKey); if (stringValue != null) { promise.resolve(stringValue); } else if (booleanValue != null) { diff --git a/index.test.ts b/index.test.ts index 3e08671..501953f 100644 --- a/index.test.ts +++ b/index.test.ts @@ -37,7 +37,7 @@ describe.each(['ios', 'android'])('DefaultPreference on %s', (platform) => { beforeEach(() => { jest.clearAllMocks(); mockDefaultPreference.reset(); // Reset all mock preferences - RNDefaultPreference.clearAll('default'); + RNDefaultPreference.clearAll(); }); it('should set and get a value for the default instance', async () => { @@ -47,7 +47,7 @@ describe.each(['ios', 'android'])('DefaultPreference on %s', (platform) => { }); it('should set and get a value for the group instance', async () => { - await DefaultPreference.setGroupName('group.reactnative.example'); + await DefaultPreference.setName('group.reactnative.example'); await DefaultPreference.set('key1', 'value1'); const value = await DefaultPreference.get('key1'); expect(value).toBe('value1'); @@ -61,7 +61,7 @@ describe.each(['ios', 'android'])('DefaultPreference on %s', (platform) => { }); it('should clear a value for the group instance', async () => { - await DefaultPreference.setGroupName('group.reactnative.example'); + await DefaultPreference.setName('group.reactnative.example'); await DefaultPreference.set('key2', 'value2'); await DefaultPreference.clear('key2'); const value = await DefaultPreference.get('key2'); @@ -103,7 +103,7 @@ describe.each(['ios', 'android'])('DefaultPreference on %s', (platform) => { }); it('should set the name if a name is provided', async () => { - await DefaultPreference.setGroupName('group.reactnative.example'); + await DefaultPreference.setName('group.reactnative.example'); expect(RNDefaultPreference.setName).toHaveBeenCalledWith('group.reactnative.example'); }); @@ -112,16 +112,16 @@ describe.each(['ios', 'android'])('DefaultPreference on %s', (platform) => { }); it('should call setName if name is not default', async () => { - await DefaultPreference.setGroupName('customName'); + await DefaultPreference.setName('customName'); expect(RNDefaultPreference.setName).toHaveBeenCalledWith('customName'); }); it('should handle multiple group names correctly', async () => { - await DefaultPreference.setGroupName('group1'); + await DefaultPreference.setName('group1'); await DefaultPreference.set('key1', 'value1'); const value1 = await DefaultPreference.get('key1'); - await DefaultPreference.setGroupName('group2'); + await DefaultPreference.setName('group2'); await DefaultPreference.set('key1', 'value2'); const value2 = await DefaultPreference.get('key1'); @@ -135,7 +135,7 @@ describe.each(['ios', 'android'])('DefaultPreference on %s', (platform) => { mockDefaultPreference.getName.mockResolvedValue(currentGroupName); // Act - await DefaultPreference.setGroupName(currentGroupName); + await DefaultPreference.setName(currentGroupName); const groupName = await DefaultPreference.getName(); // Assert diff --git a/index.ts b/index.ts index bdb2162..8aeb4f3 100644 --- a/index.ts +++ b/index.ts @@ -17,35 +17,35 @@ class DefaultPreference { } static async get(key: string): Promise { - return RNDefaultPreference.get(DefaultPreference.groupName, key); + return RNDefaultPreference.get(key); } static async set(key: string, value: string | number | boolean): Promise { - return RNDefaultPreference.set(DefaultPreference.groupName, key, value); + return RNDefaultPreference.set(key, value); } static async clear(key: string): Promise { - return RNDefaultPreference.clear(DefaultPreference.groupName, key); + return RNDefaultPreference.clear(key); } static async getMultiple(keys: string[]): Promise<(string | number | boolean | null)[]> { - return RNDefaultPreference.getMultiple(DefaultPreference.groupName, keys); + return RNDefaultPreference.getMultiple(keys); } static async setMultiple(data: RNDefaultPreferenceKeys): Promise { - return RNDefaultPreference.setMultiple(DefaultPreference.groupName, data); + return RNDefaultPreference.setMultiple(data); } static async clearMultiple(keys: string[]): Promise { - return RNDefaultPreference.clearMultiple(DefaultPreference.groupName, keys); + return RNDefaultPreference.clearMultiple(keys); } static async getAll(): Promise { - return RNDefaultPreference.getAll(DefaultPreference.groupName); + return RNDefaultPreference.getAll(); } static async clearAll(): Promise { - return RNDefaultPreference.clearAll(DefaultPreference.groupName); + return RNDefaultPreference.clearAll(); } static async getName(): Promise { diff --git a/package.json b/package.json index acbf01f..f2f0a0d 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ }, "homepage": "https://github.com/kevinresol/react-native-default-preference#readme", "devDependencies": { + "jest": "^27.0.0", "ts-jest": "^27.0.0", "@types/jest": "^27.0.0", "@testing-library/react-hooks": "^8.0.1",