@nocobase/test 0.18.0-alpha.9 → 0.19.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/e2e/defineConfig.js +2 -2
- package/lib/server/index.d.ts +1 -0
- package/lib/server/index.js +3 -0
- package/lib/server/mockServer.d.ts +8 -1
- package/lib/server/mockServer.js +26 -4
- package/package.json +3 -3
- package/vitest.mjs +62 -61
package/lib/e2e/defineConfig.js
CHANGED
|
@@ -33,7 +33,7 @@ const defineConfig = /* @__PURE__ */ __name((config) => {
|
|
|
33
33
|
// Match all test files in the e2e and __e2e__ directories.
|
|
34
34
|
testMatch: /(.*\/e2e\/|.*\/__e2e__\/).+\.test\.[tj]sx*$/,
|
|
35
35
|
// Run all tests in parallel.
|
|
36
|
-
fullyParallel:
|
|
36
|
+
fullyParallel: false,
|
|
37
37
|
// Fail the build on CI if you accidentally left test.only in the source code.
|
|
38
38
|
forbidOnly: !!process.env.CI,
|
|
39
39
|
// Retry on CI only.
|
|
@@ -41,7 +41,7 @@ const defineConfig = /* @__PURE__ */ __name((config) => {
|
|
|
41
41
|
// Opt out of parallel tests on CI.
|
|
42
42
|
// workers: process.env.CI ? 1 : undefined,
|
|
43
43
|
workers: 1,
|
|
44
|
-
maxFailures:
|
|
44
|
+
maxFailures: 0,
|
|
45
45
|
// Reporter to use
|
|
46
46
|
reporter: process.env.PLAYWRIGHT_SKIP_REPORTER ? void 0 : [["html", { outputFolder: "./storage/playwright/tests-report" }]],
|
|
47
47
|
outputDir: "./storage/playwright/test-results",
|
package/lib/server/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export { mockDatabase } from '@nocobase/database';
|
|
|
3
3
|
export { default as supertest } from 'supertest';
|
|
4
4
|
export * from './mockServer';
|
|
5
5
|
export declare const pgOnly: () => any;
|
|
6
|
+
export declare const isPg: () => boolean;
|
|
6
7
|
export declare function randomStr(): string;
|
|
7
8
|
export declare const waitSecond: (timeout?: number) => Promise<void>;
|
|
8
9
|
export declare const startServerWithRandomPort: (startServer: any) => Promise<unknown>;
|
package/lib/server/index.js
CHANGED
|
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
var server_exports = {};
|
|
31
31
|
__export(server_exports, {
|
|
32
32
|
createWsClient: () => createWsClient,
|
|
33
|
+
isPg: () => isPg,
|
|
33
34
|
mockDatabase: () => import_database.mockDatabase,
|
|
34
35
|
pgOnly: () => pgOnly,
|
|
35
36
|
randomStr: () => randomStr,
|
|
@@ -44,6 +45,7 @@ var import_database = require("@nocobase/database");
|
|
|
44
45
|
var import_supertest = __toESM(require("supertest"));
|
|
45
46
|
__reExport(server_exports, require("./mockServer"), module.exports);
|
|
46
47
|
const pgOnly = /* @__PURE__ */ __name(() => process.env.DB_DIALECT == "postgres" ? import_vitest.describe : import_vitest.describe.skip, "pgOnly");
|
|
48
|
+
const isPg = /* @__PURE__ */ __name(() => process.env.DB_DIALECT == "postgres", "isPg");
|
|
47
49
|
function randomStr() {
|
|
48
50
|
return Math.random().toString(36).substring(2);
|
|
49
51
|
}
|
|
@@ -92,6 +94,7 @@ const createWsClient = /* @__PURE__ */ __name(async ({ serverPort, options = {}
|
|
|
92
94
|
// Annotate the CommonJS export names for ESM import in node:
|
|
93
95
|
0 && (module.exports = {
|
|
94
96
|
createWsClient,
|
|
97
|
+
isPg,
|
|
95
98
|
mockDatabase,
|
|
96
99
|
pgOnly,
|
|
97
100
|
randomStr,
|
|
@@ -63,5 +63,12 @@ export declare class MockServer extends Application {
|
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
65
|
export declare function mockServer(options?: ApplicationOptions): MockServer;
|
|
66
|
-
export declare function
|
|
66
|
+
export declare function startMockServer(options?: ApplicationOptions): Promise<MockServer>;
|
|
67
|
+
type BeforeInstallFn = (app: any) => Promise<void>;
|
|
68
|
+
export declare function createMockServer(options?: ApplicationOptions & {
|
|
69
|
+
version?: string;
|
|
70
|
+
beforeInstall?: BeforeInstallFn;
|
|
71
|
+
skipInstall?: boolean;
|
|
72
|
+
skipStart?: boolean;
|
|
73
|
+
}): Promise<MockServer>;
|
|
67
74
|
export default mockServer;
|
package/lib/server/mockServer.js
CHANGED
|
@@ -31,7 +31,8 @@ __export(mockServer_exports, {
|
|
|
31
31
|
MockServer: () => MockServer,
|
|
32
32
|
createMockServer: () => createMockServer,
|
|
33
33
|
default: () => mockServer_default,
|
|
34
|
-
mockServer: () => mockServer
|
|
34
|
+
mockServer: () => mockServer,
|
|
35
|
+
startMockServer: () => startMockServer
|
|
35
36
|
});
|
|
36
37
|
module.exports = __toCommonJS(mockServer_exports);
|
|
37
38
|
var import_database = require("@nocobase/database");
|
|
@@ -159,7 +160,6 @@ function mockServer(options = {}) {
|
|
|
159
160
|
global.TextDecoder = require("util").TextDecoder;
|
|
160
161
|
}
|
|
161
162
|
import_server.Gateway.getInstance().reset();
|
|
162
|
-
import_server.AppSupervisor.getInstance().reset();
|
|
163
163
|
if (!import_server.PluginManager.findPackagePatched) {
|
|
164
164
|
import_server.PluginManager.getPackageJson = async () => {
|
|
165
165
|
return {
|
|
@@ -175,7 +175,28 @@ function mockServer(options = {}) {
|
|
|
175
175
|
return app;
|
|
176
176
|
}
|
|
177
177
|
__name(mockServer, "mockServer");
|
|
178
|
-
function
|
|
178
|
+
async function startMockServer(options = {}) {
|
|
179
|
+
const app = mockServer(options);
|
|
180
|
+
await app.runCommand("start");
|
|
181
|
+
return app;
|
|
182
|
+
}
|
|
183
|
+
__name(startMockServer, "startMockServer");
|
|
184
|
+
async function createMockServer(options = {}) {
|
|
185
|
+
const { version, beforeInstall, skipInstall, skipStart, ...others } = options;
|
|
186
|
+
const app = mockServer(others);
|
|
187
|
+
if (!skipInstall) {
|
|
188
|
+
if (beforeInstall) {
|
|
189
|
+
await beforeInstall(app);
|
|
190
|
+
}
|
|
191
|
+
await app.runCommand("install", "-f");
|
|
192
|
+
}
|
|
193
|
+
if (version) {
|
|
194
|
+
await app.version.update(version);
|
|
195
|
+
}
|
|
196
|
+
if (!skipStart) {
|
|
197
|
+
await app.runCommand("start");
|
|
198
|
+
}
|
|
199
|
+
return app;
|
|
179
200
|
}
|
|
180
201
|
__name(createMockServer, "createMockServer");
|
|
181
202
|
var mockServer_default = mockServer;
|
|
@@ -183,5 +204,6 @@ var mockServer_default = mockServer;
|
|
|
183
204
|
0 && (module.exports = {
|
|
184
205
|
MockServer,
|
|
185
206
|
createMockServer,
|
|
186
|
-
mockServer
|
|
207
|
+
mockServer,
|
|
208
|
+
startMockServer
|
|
187
209
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/test",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0-alpha.2",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"module": "./src/index.ts",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@faker-js/faker": "8.1.0",
|
|
43
|
-
"@nocobase/server": "0.
|
|
43
|
+
"@nocobase/server": "0.19.0-alpha.2",
|
|
44
44
|
"@playwright/test": "^1.40.1",
|
|
45
45
|
"@testing-library/react": "^14.0.0",
|
|
46
46
|
"@testing-library/user-event": "^14.4.3",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"vitest-dom": "^0.1.1",
|
|
61
61
|
"ws": "^8.13.0"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "cff5b77ecf12ccdb450d50d505b3aa44a68478c8"
|
|
64
64
|
}
|
package/vitest.mjs
CHANGED
|
@@ -48,70 +48,71 @@ export const defineConfig = (config = {}) => {
|
|
|
48
48
|
return vitestConfig(
|
|
49
49
|
process.env.TEST_ENV === 'server-side'
|
|
50
50
|
? {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
51
|
+
root: process.cwd(),
|
|
52
|
+
resolve: {
|
|
53
|
+
mainFields: ['module'],
|
|
54
|
+
},
|
|
55
|
+
test: {
|
|
56
|
+
globals: true,
|
|
57
|
+
setupFiles: resolve(__dirname, './setup/server.ts'),
|
|
58
|
+
alias: tsConfigPathsToAlias(),
|
|
59
|
+
include: ['packages/**/__tests__/**/*.test.ts'],
|
|
60
|
+
exclude: [
|
|
61
|
+
'**/node_modules/**',
|
|
62
|
+
'**/dist/**',
|
|
63
|
+
'**/lib/**',
|
|
64
|
+
'**/es/**',
|
|
65
|
+
'**/e2e/**',
|
|
66
|
+
'**/__e2e__/**',
|
|
67
|
+
'**/{vitest,commitlint}.config.*',
|
|
68
|
+
'packages/**/{dumi-theme-nocobase,sdk,client}/**/__tests__/**/*.{test,spec}.{ts,tsx}',
|
|
69
|
+
],
|
|
70
|
+
testTimeout: 300000,
|
|
71
|
+
hookTimeout: 300000,
|
|
72
|
+
// bail: 1,
|
|
73
|
+
// 在 GitHub Actions 中不输出日志
|
|
74
|
+
silent: !!process.env.GITHUB_ACTIONS,
|
|
75
|
+
// poolOptions: {
|
|
76
|
+
// threads: {
|
|
77
|
+
// singleThread: process.env.SINGLE_THREAD == 'false' ? false : true,
|
|
78
|
+
// },
|
|
79
|
+
// },
|
|
80
|
+
},
|
|
81
|
+
}
|
|
81
82
|
: {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
83
|
+
plugins: [react()],
|
|
84
|
+
resolve: {
|
|
85
|
+
mainFields: ['module'],
|
|
86
|
+
},
|
|
87
|
+
define: {
|
|
88
|
+
'process.env.__TEST__': true,
|
|
89
|
+
'process.env.__E2E__': false,
|
|
90
|
+
},
|
|
91
|
+
test: {
|
|
92
|
+
globals: true,
|
|
93
|
+
setupFiles: resolve(__dirname, './setup/client.ts'),
|
|
94
|
+
environment: 'jsdom',
|
|
95
|
+
css: false,
|
|
96
|
+
alias: tsConfigPathsToAlias(),
|
|
97
|
+
include: ['packages/**/{dumi-theme-nocobase,sdk,client}/**/__tests__/**/*.{test,spec}.{ts,tsx}'],
|
|
98
|
+
exclude: [
|
|
99
|
+
'**/node_modules/**',
|
|
100
|
+
'**/dist/**',
|
|
101
|
+
'**/lib/**',
|
|
102
|
+
'**/es/**',
|
|
103
|
+
'**/e2e/**',
|
|
104
|
+
'**/__e2e__/**',
|
|
105
|
+
'**/{vitest,commitlint}.config.*',
|
|
106
|
+
],
|
|
107
|
+
testTimeout: 300000,
|
|
108
|
+
// 在 GitHub Actions 中不输出日志
|
|
109
|
+
silent: !!process.env.GITHUB_ACTIONS,
|
|
110
|
+
server: {
|
|
111
|
+
deps: {
|
|
112
|
+
inline: ['@juggle/resize-observer', 'clsx'],
|
|
113
|
+
},
|
|
112
114
|
},
|
|
113
115
|
},
|
|
114
116
|
},
|
|
115
|
-
},
|
|
116
117
|
);
|
|
117
118
|
};
|