Skip to content

Commit ebcfc81

Browse files
committed
all tests working on chrome
1 parent 89c42eb commit ebcfc81

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

lib/core/bucketer/index.spec.ts

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
16+
import { describe, it, expect, beforeEach, vi, afterEach, MockInstance } from 'vitest';
1717
import { sprintf } from '../../utils/fns';
1818
import projectConfig, { ProjectConfig } from '../../project_config/project_config';
1919
import { getTestProjectConfig } from '../../tests/test_data';
2020
import { INVALID_BUCKETING_ID, INVALID_GROUP_ID } from 'error_message';
2121
import * as bucketer from './';
2222
import * as bucketValueGenerator from './bucket_value_generator';
2323

24+
vi.mock('./bucket_value_generator', { spy: true });
25+
2426
import {
2527
USER_BUCKETED_INTO_EXPERIMENT_IN_GROUP,
2628
USER_NOT_BUCKETED_INTO_EXPERIMENT_IN_GROUP,
@@ -65,8 +67,12 @@ describe('excluding groups', () => {
6567
let configObj;
6668
const mockLogger = getMockLogger();
6769
let bucketerParams: BucketerParams;
70+
const mockGenerateBucketValue = bucketValueGenerator.generateBucketValue as unknown as
71+
MockInstance<typeof bucketValueGenerator.generateBucketValue>;
6872

6973
beforeEach(() => {
74+
vi.clearAllMocks();
75+
7076
setLogSpy(mockLogger);
7177
configObj = projectConfig.createProjectConfig(cloneDeep(testData));
7278

@@ -83,8 +89,7 @@ describe('excluding groups', () => {
8389
validateEntity: true,
8490
};
8591

86-
vi.spyOn(bucketValueGenerator, 'generateBucketValue')
87-
.mockReturnValueOnce(50)
92+
mockGenerateBucketValue.mockReturnValueOnce(50)
8893
.mockReturnValueOnce(50000);
8994
});
9095

@@ -113,8 +118,12 @@ describe('including groups: random', () => {
113118
let configObj: ProjectConfig;
114119
const mockLogger = getMockLogger();
115120
let bucketerParams: BucketerParams;
121+
const mockGenerateBucketValue = bucketValueGenerator.generateBucketValue as unknown as
122+
MockInstance<typeof bucketValueGenerator.generateBucketValue>;
116123

117124
beforeEach(() => {
125+
vi.clearAllMocks();
126+
118127
setLogSpy(mockLogger);
119128
configObj = projectConfig.createProjectConfig(cloneDeep(testData));
120129
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -137,7 +146,7 @@ describe('including groups: random', () => {
137146
});
138147

139148
it('should return decision response with the proper variation for a user in a grouped experiment', () => {
140-
vi.spyOn(bucketValueGenerator, 'generateBucketValue')
149+
mockGenerateBucketValue
141150
.mockReturnValueOnce(50)
142151
.mockReturnValueOnce(50);
143152

@@ -156,7 +165,7 @@ describe('including groups: random', () => {
156165
});
157166

158167
it('should return decision response with variation null when a user is bucketed into a different grouped experiment than the one speicfied', () => {
159-
vi.spyOn(bucketValueGenerator, 'generateBucketValue').mockReturnValue(5000);
168+
mockGenerateBucketValue.mockReturnValue(5000);
160169

161170
const decisionResponse = bucketer.bucket(bucketerParams);
162171

@@ -173,7 +182,7 @@ describe('including groups: random', () => {
173182
});
174183

175184
it('should return decision response with variation null when a user is not bucketed into any experiments in the random group', () => {
176-
vi.spyOn(bucketValueGenerator, 'generateBucketValue').mockReturnValue(50000);
185+
mockGenerateBucketValue.mockReturnValue(50000);
177186

178187
const decisionResponse = bucketer.bucket(bucketerParams);
179188

@@ -185,7 +194,7 @@ describe('including groups: random', () => {
185194
});
186195

187196
it('should return decision response with variation null when a user is bucketed into traffic space of deleted experiment within a random group', () => {
188-
vi.spyOn(bucketValueGenerator, 'generateBucketValue').mockReturnValueOnce(9000);
197+
mockGenerateBucketValue.mockReturnValueOnce(9000);
189198

190199
const decisionResponse = bucketer.bucket(bucketerParams);
191200

@@ -215,8 +224,12 @@ describe('including groups: overlapping', () => {
215224
let configObj: ProjectConfig;
216225
const mockLogger = getMockLogger();
217226
let bucketerParams: BucketerParams;
227+
const mockGenerateBucketValue = bucketValueGenerator.generateBucketValue as unknown as
228+
MockInstance<typeof bucketValueGenerator.generateBucketValue>;
218229

219230
beforeEach(() => {
231+
vi.clearAllMocks();
232+
220233
setLogSpy(mockLogger);
221234
configObj = projectConfig.createProjectConfig(cloneDeep(testData));
222235
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -239,7 +252,7 @@ describe('including groups: overlapping', () => {
239252
});
240253

241254
it('should return decision response with variation when a user falls into an experiment within an overlapping group', () => {
242-
vi.spyOn(bucketValueGenerator, 'generateBucketValue').mockReturnValueOnce(0);
255+
mockGenerateBucketValue.mockReturnValueOnce(0);
243256

244257
const decisionResponse = bucketer.bucket(bucketerParams);
245258

@@ -249,7 +262,7 @@ describe('including groups: overlapping', () => {
249262
});
250263

251264
it('should return decision response with variation null when a user does not fall into an experiment within an overlapping group', () => {
252-
vi.spyOn(bucketValueGenerator, 'generateBucketValue').mockReturnValueOnce(3000);
265+
mockGenerateBucketValue.mockReturnValueOnce(3000);
253266
const decisionResponse = bucketer.bucket(bucketerParams);
254267

255268
expect(decisionResponse.result).toBeNull();

vitest.browser.config.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ export default defineConfig({
113113
// pool: 'forks', // Use forks pool to avoid threading issues with BrowserStack
114114
// bail: 1, // Stop on first failure to avoid cascading errors
115115
// Include all .spec.ts files in lib directory, but exclude react_native tests
116-
include: ['lib/**/audience_evaluator/index.spec.ts'],
116+
include: ['lib/**/*.spec.ts'],
117117
exclude: [
118118
'lib/**/*.react_native.spec.ts',
119119
'lib/**/*.node.spec.ts',

0 commit comments

Comments
 (0)