11jest . mock ( '../src/request' )
22jest . useFakeTimers ( )
33jest . spyOn ( global , 'setInterval' )
4- jest . mock ( '../src/bucketing' )
54
6- import { EnvironmentConfigManager } from '../src/environmentConfigManager'
7- import { importBucketingLib , getBucketingLib } from '../src/bucketing'
5+ import { EnvironmentConfigManager } from '../src'
86import { mocked } from 'jest-mock'
97import { Response } from 'cross-fetch'
10- import { dvcDefaultLogger , ResponseError } from '@devcycle/js-cloud-server-sdk'
8+ import {
9+ DevCycleOptions ,
10+ dvcDefaultLogger ,
11+ ResponseError ,
12+ } from '@devcycle/js-cloud-server-sdk'
13+ import { DVCLogger } from '@devcycle/types'
1114import { getEnvironmentConfig } from '../src/request'
1215
1316const setInterval_mock = mocked ( setInterval )
1417const getEnvironmentConfig_mock = mocked ( getEnvironmentConfig )
1518const logger = dvcDefaultLogger ( )
1619
20+ const mockSDKConfig = jest . fn ( )
21+
22+ function getConfigManager (
23+ logger : DVCLogger ,
24+ sdkKey : string ,
25+ options : DevCycleOptions ,
26+ ) {
27+ return new EnvironmentConfigManager (
28+ logger ,
29+ sdkKey ,
30+ mockSDKConfig ,
31+ setInterval ,
32+ clearInterval ,
33+ options ,
34+ )
35+ }
36+
1737describe ( 'EnvironmentConfigManager Unit Tests' , ( ) => {
18- beforeAll ( async ( ) => {
19- await importBucketingLib ( )
20- } )
2138 beforeEach ( ( ) => {
2239 getEnvironmentConfig_mock . mockReset ( )
2340 setInterval_mock . mockReset ( )
@@ -43,18 +60,15 @@ describe('EnvironmentConfigManager Unit Tests', () => {
4360 mockFetchResponse ( { status : 200 } ) ,
4461 )
4562
46- const envConfig = new EnvironmentConfigManager ( logger , 'sdkKey' , {
63+ const envConfig = getConfigManager ( logger , 'sdkKey' , {
4764 configPollingIntervalMS : 1000 ,
4865 configPollingTimeoutMS : 1000 ,
4966 } )
5067 await envConfig . fetchConfigPromise
5168 expect ( setInterval_mock ) . toHaveBeenCalledTimes ( 1 )
5269
5370 await envConfig . _fetchConfig ( )
54- expect ( getBucketingLib ( ) . setConfigDataUTF8 ) . toHaveBeenCalledWith (
55- 'sdkKey' ,
56- Buffer . from ( '{}' , 'utf8' ) ,
57- )
71+ expect ( mockSDKConfig ) . toHaveBeenCalledWith ( 'sdkKey' , '{}' )
5872
5973 expect ( envConfig ) . toEqual (
6074 expect . objectContaining ( {
@@ -72,7 +86,7 @@ describe('EnvironmentConfigManager Unit Tests', () => {
7286 mockFetchResponse ( { status : 200 } ) ,
7387 )
7488
75- const envConfig = new EnvironmentConfigManager ( logger , 'sdkKey' , {
89+ const envConfig = getConfigManager ( logger , 'sdkKey' , {
7690 configPollingIntervalMS : 10 ,
7791 configPollingTimeoutMS : 10000 ,
7892 } )
@@ -97,7 +111,7 @@ describe('EnvironmentConfigManager Unit Tests', () => {
97111 mockFetchResponse ( { status : 200 } ) ,
98112 )
99113
100- const envConfig = new EnvironmentConfigManager ( logger , 'sdkKey' , {
114+ const envConfig = getConfigManager ( logger , 'sdkKey' , {
101115 configPollingIntervalMS : 1000 ,
102116 configPollingTimeoutMS : 1000 ,
103117 } )
@@ -129,7 +143,7 @@ describe('EnvironmentConfigManager Unit Tests', () => {
129143 mockFetchResponse ( { status : 500 } ) ,
130144 )
131145
132- const envConfig = new EnvironmentConfigManager ( logger , 'sdkKey' , { } )
146+ const envConfig = getConfigManager ( logger , 'sdkKey' , { } )
133147 expect ( envConfig . fetchConfigPromise ) . rejects . toThrow (
134148 'Failed to download DevCycle config.' ,
135149 )
@@ -140,7 +154,7 @@ describe('EnvironmentConfigManager Unit Tests', () => {
140154 mockFetchResponse ( { status : 403 } ) ,
141155 )
142156
143- const envConfig = new EnvironmentConfigManager ( logger , 'sdkKey' , { } )
157+ const envConfig = getConfigManager ( logger , 'sdkKey' , { } )
144158 expect ( envConfig . fetchConfigPromise ) . rejects . toThrow (
145159 'Invalid SDK key provided:' ,
146160 )
@@ -150,7 +164,7 @@ describe('EnvironmentConfigManager Unit Tests', () => {
150164 it ( 'should throw error fetching config throws' , ( ) => {
151165 getEnvironmentConfig_mock . mockRejectedValue ( new Error ( 'Error' ) )
152166
153- const envConfig = new EnvironmentConfigManager ( logger , 'sdkKey' , { } )
167+ const envConfig = getConfigManager ( logger , 'sdkKey' , { } )
154168 expect ( envConfig . fetchConfigPromise ) . rejects . toThrow (
155169 'Failed to download DevCycle config.' ,
156170 )
@@ -162,7 +176,7 @@ describe('EnvironmentConfigManager Unit Tests', () => {
162176 mockFetchResponse ( { status : 200 , data : config } ) ,
163177 )
164178
165- const envConfig = new EnvironmentConfigManager ( logger , 'sdkKey' , {
179+ const envConfig = getConfigManager ( logger , 'sdkKey' , {
166180 configPollingIntervalMS : 1000 ,
167181 configPollingTimeoutMS : 1000 ,
168182 } )
@@ -184,7 +198,7 @@ describe('EnvironmentConfigManager Unit Tests', () => {
184198 mockFetchResponse ( { status : 500 } ) ,
185199 )
186200
187- const envConfig = new EnvironmentConfigManager ( logger , 'sdkKey' , { } )
201+ const envConfig = getConfigManager ( logger , 'sdkKey' , { } )
188202 await expect ( envConfig . fetchConfigPromise ) . rejects . toThrow ( )
189203 expect ( setInterval_mock ) . toHaveBeenCalledTimes ( 1 )
190204 } )
0 commit comments