Skip to content

Commit c7c435a

Browse files
committed
fix unit test failure
1 parent cbafc3d commit c7c435a

File tree

6 files changed

+127
-105
lines changed

6 files changed

+127
-105
lines changed

console/atest-ui/package-lock.json

Lines changed: 55 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

console/atest-ui/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
"eslint-plugin-vue": "^9.11.0",
5050
"fetch-mock-jest": "^1.5.1",
5151
"jest": "^29.6.1",
52+
"jest-fetch-mock": "^3.0.3",
5253
"jsdom": "^22.1.0",
5354
"npm-run-all": "^4.1.5",
5455
"prettier": "^2.8.8",

console/atest-ui/src/views/__test__/cache.spec.ts

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -16,37 +16,9 @@ limitations under the License.
1616

1717
import { describe } from 'node:test'
1818
import {Cache, SetPreference, TestCaseResponse, Store, Stores} from '../cache'
19+
import { SetupStorage } from './common'
1920

20-
const localStorageMock = (() => {
21-
let store = {};
22-
23-
return {
24-
getItem(key) {
25-
return store[key] || null;
26-
},
27-
setItem(key, value) {
28-
store[key] = value.toString();
29-
},
30-
removeItem(key) {
31-
delete store[key];
32-
},
33-
clear() {
34-
store = {};
35-
}
36-
};
37-
})();
38-
39-
Object.defineProperty(global, 'sessionStorage', {
40-
value: localStorageMock
41-
});
42-
Object.defineProperty(global, 'localStorage', {
43-
value: localStorageMock
44-
});
45-
Object.defineProperty(global, 'navigator', {
46-
value: {
47-
language: 'en'
48-
}
49-
});
21+
SetupStorage()
5022

5123
describe('TestCaseResponseCache', () => {
5224
test('should set and get test case response cache', () => {
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
Copyright 2024 API Testing Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
export function SetupStorage() {
18+
const localStorageMock = (() => {
19+
let store = new Map<string, string>;
20+
21+
return {
22+
getItem(key: string) {
23+
return store.get(key) || null;
24+
},
25+
setItem(key: string, value: string) {
26+
store.set(key, value);
27+
},
28+
removeItem(key: string) {
29+
store.delete(key)
30+
},
31+
clear() {
32+
store.clear();
33+
}
34+
};
35+
})();
36+
37+
Object.defineProperty(global, 'sessionStorage', {
38+
value: localStorageMock
39+
});
40+
Object.defineProperty(global, 'localStorage', {
41+
value: localStorageMock
42+
});
43+
Object.defineProperty(global, 'navigator', {
44+
value: {
45+
language: 'en'
46+
}
47+
});
48+
}

console/atest-ui/src/views/__test__/net.spec.ts

Lines changed: 19 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -15,52 +15,28 @@ limitations under the License.
1515
*/
1616

1717
import { describe } from 'node:test'
18-
import {API, TestCase} from '../net'
18+
import {API} from '../net'
19+
import { type TestCase } from '../net'
20+
import { SetupStorage } from './common'
21+
import fetchMock from "jest-fetch-mock";
1922

20-
const fakeFetch: { [key:string]:string; } = {};
23+
fetchMock.enableMocks();
24+
SetupStorage()
2125

22-
global.fetch = jest.fn((key: string) =>
23-
Promise.resolve({
24-
json: () => {
25-
if (fakeFetch[key] === undefined) {
26-
return Promise.resolve({})
27-
}
28-
return Promise.resolve(JSON.parse(fakeFetch[key]))
29-
},
30-
}),
31-
) as jest.Mock;
32-
33-
fakeFetch['/api/v1/version'] = '{"version":"0.0.1"}'
34-
35-
const localStorageMock = (() => {
36-
let store = {};
37-
38-
return {
39-
getItem(key) {
40-
return store[key] || null;
41-
},
42-
setItem(key, value) {
43-
store[key] = value.toString();
44-
},
45-
removeItem(key) {
46-
delete store[key];
47-
},
48-
clear() {
49-
store = {};
50-
}
51-
};
52-
})();
53-
54-
Object.defineProperty(global, 'sessionStorage', {
55-
value: localStorageMock
26+
beforeEach(() => {
27+
fetchMock.resetMocks();
5628
});
5729

5830
describe('net', () => {
5931
test('GetVersion', () => {
60-
API.GetVersion()
32+
fetchMock.mockResponseOnce(`{"version":"v0.0.1"}`)
33+
API.GetVersion((d) => {
34+
expect(d.version).toEqual('v0.0.2')
35+
})
6136
})
6237

6338
test('CreateTestSuite', () => {
39+
fetchMock.mockResponseOnce(`{"version":"v0.0.1"}`)
6440
API.CreateTestSuite({
6541
store: 'store',
6642
name: 'name',
@@ -72,27 +48,27 @@ describe('net', () => {
7248
})
7349

7450
test('UpdateTestSuite', () => {
75-
API.UpdateTestSuite({}, (d) => {})
51+
API.UpdateTestSuite({}, () => {})
7652
})
7753

7854
test('GetTestSuite', () => {
79-
API.GetTestSuite('fake', (d) => {})
55+
API.GetTestSuite('fake', () => {})
8056
})
8157

8258
test('DeleteTestSuite', () => {
83-
API.DeleteTestSuite('fake', (d) => {})
59+
API.DeleteTestSuite('fake', () => {})
8460
})
8561

8662
test('ConvertTestSuite', () => {
87-
API.ConvertTestSuite('fake', 'generator', (d) => {})
63+
API.ConvertTestSuite('fake', 'generator', () => {})
8864
})
8965

9066
test('DuplicateTestSuite', () => {
91-
API.DuplicateTestSuite('source', 'target', (d) => {})
67+
API.DuplicateTestSuite('source', 'target', () => {})
9268
})
9369

9470
test('GetTestSuiteYaml', () => {
95-
API.GetTestSuiteYaml('fake', (d) => {})
71+
API.GetTestSuiteYaml('fake', () => {})
9672
})
9773

9874
test('CreateTestCase', () => {

console/atest-ui/src/views/__test__/types.spec.ts

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,9 @@ limitations under the License.
1717
import { describe } from 'node:test'
1818
import { NewSuggestedAPIsQuery, CreateFilter, GetHTTPMethods, FlattenObject } from '../types'
1919
import type { Pair } from '../types'
20+
import fetchMock from "jest-fetch-mock";
2021

21-
const fakeFetch: { [key:string]:string; } = {};
22-
23-
global.fetch = jest.fn((key: string) =>
24-
Promise.resolve({
25-
json: () => {
26-
if (fakeFetch[key] === undefined) {
27-
return Promise.resolve({})
28-
}
29-
return Promise.resolve(JSON.parse(fakeFetch[key]))
30-
},
31-
}),
32-
) as jest.Mock;
22+
fetchMock.enableMocks();
3323

3424
describe('NewSuggestedAPIsQuery', () => {
3525
test('empty data', () => {

0 commit comments

Comments
 (0)