Skip to content

Commit d3c0a56

Browse files
authored
Ability to specify configuration dates with offline init (#211)
* failing test * ability to set and pass configuration dates * bump minor version instead of patch version
1 parent 4262f25 commit d3c0a56

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eppo/js-client-sdk",
3-
"version": "3.15.1",
3+
"version": "3.16.0",
44
"description": "Eppo SDK for client-side JavaScript applications",
55
"main": "dist/index.js",
66
"files": [

src/index.spec.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,25 @@ describe('sync init', () => {
416416
'variant-1',
417417
);
418418
});
419+
420+
it('sets configuration dates', () => {
421+
const testStart = new Date();
422+
const configPublishedAt = new Date(testStart.getTime() - 10000).toISOString();
423+
const configFetchedAt = testStart.toISOString();
424+
const client = offlineInit({
425+
flagsConfiguration: {
426+
[flagKey]: mockNotObfuscatedFlagConfig,
427+
},
428+
configPublishedAt,
429+
configFetchedAt,
430+
});
431+
432+
const result = client.getStringAssignmentDetails(flagKey, 'subject-10', {}, 'default-value');
433+
434+
expect(result.variation).toBe('variant-1');
435+
expect(result.evaluationDetails.configPublishedAt).toBe(configPublishedAt);
436+
expect(result.evaluationDetails.configFetchedAt).toBe(configFetchedAt);
437+
});
419438
});
420439

421440
describe('initialization options', () => {

src/index.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ export interface IClientConfigSync {
6666
enableOverrides?: boolean;
6767

6868
overridesStorageKey?: string;
69+
70+
configPublishedAt?: string; // ISO Datetime String
71+
72+
configFetchedAt?: string; // ISO Datetime String
6973
}
7074

7175
export { IClientConfig, IPrecomputedClientConfig };
@@ -544,6 +548,13 @@ export class EppoJSClient extends EppoClient {
544548
);
545549
this.setFlagConfigurationStore(memoryOnlyConfigurationStore);
546550

551+
if (config.configPublishedAt) {
552+
memoryOnlyConfigurationStore.setConfigPublishedAt(config.configPublishedAt);
553+
}
554+
if (config.configFetchedAt) {
555+
memoryOnlyConfigurationStore.setConfigFetchedAt(config.configFetchedAt);
556+
}
557+
547558
if (enableOverrides) {
548559
const overrideStore = overrideStorageFactory(
549560
{

0 commit comments

Comments
 (0)