Skip to content

Commit 44015b1

Browse files
Add & update unit tests
1 parent f3a0f16 commit 44015b1

File tree

4 files changed

+72
-2
lines changed

4 files changed

+72
-2
lines changed

packages/remote-config/test/client/rest_client.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ describe('RestClient', () => {
114114
expect(fetchStub).to.be.calledWith(
115115
sinon.match.string,
116116
sinon.match({
117-
body: '{"sdk_version":"sdk-version","app_instance_id":"fis-id","app_instance_id_token":"fis-token","app_id":"app-id","language_code":"en-US"}'
117+
body: '{"sdk_version":"sdk-version","app_instance_id":"fis-id","app_instance_id_token":"fis-token","app_id":"app-id","language_code":"en-GB"}'
118118
})
119119
);
120120
});

packages/remote-config/test/remote_config.test.ts

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ import {
4242
getString,
4343
getValue,
4444
setLogLevel,
45-
fetchConfig
45+
fetchConfig,
46+
setCustomSignals
4647
} from '../src/api';
4748
import * as api from '../src/api';
4849
import { fetchAndActivate } from '../src';
@@ -93,6 +94,20 @@ describe('RemoteConfig', () => {
9394
loggerLogLevelSpy.restore();
9495
});
9596

97+
describe('setCustomSignals', () => {
98+
99+
beforeEach(() => {
100+
storageCache.setCustomSignals = sinon.stub();
101+
storage.setCustomSignals = sinon.stub();
102+
});
103+
104+
it('call storage API to store signals', async () => {
105+
await setCustomSignals(rc, { key: 'value' });
106+
107+
expect(storageCache.setCustomSignals).to.have.been.calledWith({ key: 'value' });
108+
});
109+
});
110+
96111
// Adapts getUserLanguage tests from packages/auth/test/utils_test.js for TypeScript.
97112
describe('setLogLevel', () => {
98113
it('proxies to the FirebaseLogger instance', () => {
@@ -449,6 +464,7 @@ describe('RemoteConfig', () => {
449464
.stub()
450465
.returns(Promise.resolve({ status: 200 } as FetchResponse));
451466
storageCache.setLastFetchStatus = sinon.stub();
467+
storageCache.getCustomSignals = sinon.stub();
452468
timeoutStub = sinon.stub(window, 'setTimeout');
453469
});
454470

@@ -517,5 +533,11 @@ describe('RemoteConfig', () => {
517533
'failure'
518534
);
519535
});
536+
537+
it('sends custom signals', async () => {
538+
await fetchConfig(rc);
539+
540+
expect(storageCache.getCustomSignals).to.have.been.called;
541+
});
520542
});
521543
});

packages/remote-config/test/storage/storage.test.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,27 @@ describe('Storage', () => {
117117

118118
expect(actualMetadata).to.be.undefined;
119119
});
120+
121+
it('sets and gets custom signals', async () => {
122+
const customSignals = { key: 'value', key1: 'value1'};
123+
124+
await storage.setCustomSignals(customSignals);
125+
126+
const storedCustomSignals = await storage.getCustomSignals();
127+
128+
expect(storedCustomSignals).to.deep.eq(customSignals);
129+
});
130+
131+
it('upserts custom signals when key is present in storage', async () => {
132+
const customSignals = { key: 'value', key1: 'value1'};
133+
const updatedSignals = { key: 'value', key1: 'value2'};
134+
135+
await storage.setCustomSignals(customSignals);
136+
137+
await storage.setCustomSignals({ key1: 'value2'});
138+
139+
const storedCustomSignals = await storage.getCustomSignals();
140+
141+
expect(storedCustomSignals).to.deep.eq(updatedSignals);
142+
});
120143
});

packages/remote-config/test/storage/storage_cache.test.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ describe('StorageCache', () => {
3737
const status = 'success';
3838
const lastSuccessfulFetchTimestampMillis = 123;
3939
const activeConfig = { key: 'value' };
40+
const customSignals = { 'key': 'value' };
4041

4142
storage.getLastFetchStatus = sinon
4243
.stub()
@@ -47,12 +48,16 @@ describe('StorageCache', () => {
4748
storage.getActiveConfig = sinon
4849
.stub()
4950
.returns(Promise.resolve(activeConfig));
51+
storage.getCustomSignals = sinon
52+
.stub()
53+
.returns(Promise.resolve(customSignals));
5054

5155
await storageCache.loadFromStorage();
5256

5357
expect(storage.getLastFetchStatus).to.have.been.called;
5458
expect(storage.getLastSuccessfulFetchTimestampMillis).to.have.been.called;
5559
expect(storage.getActiveConfig).to.have.been.called;
60+
expect(storage.getCustomSignals).to.have.been.called;
5661

5762
expect(storageCache.getLastFetchStatus()).to.eq(status);
5863
expect(storageCache.getLastSuccessfulFetchTimestampMillis()).to.deep.eq(
@@ -81,4 +86,24 @@ describe('StorageCache', () => {
8186
expect(storage.setActiveConfig).to.have.been.calledWith(activeConfig);
8287
});
8388
});
89+
90+
describe('setCustomSignals', () => {
91+
const customSignals = { key: 'value' };
92+
93+
beforeEach(() => {
94+
storage.setCustomSignals = sinon.stub().returns(Promise.resolve());
95+
});
96+
97+
it('writes to memory cache', async () => {
98+
await storageCache.setCustomSignals(customSignals);
99+
100+
expect(storageCache.getCustomSignals()).to.deep.eq(customSignals);
101+
});
102+
103+
it('writes to persistent storage', async () => {
104+
await storageCache.setCustomSignals(customSignals);
105+
106+
expect(storage.setCustomSignals).to.have.been.calledWith(customSignals);
107+
});
108+
});
84109
});

0 commit comments

Comments
 (0)