@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.
@@ -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: true,
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: 1,
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",
@@ -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>;
@@ -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 createMockServer(): void;
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;
@@ -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 createMockServer() {
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.18.0-alpha.9",
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.18.0-alpha.9",
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": "34ca0df4eede2e83fc86297b0fe19eba970e2b1b"
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
- 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
- bail: 1,
72
- // GitHub Actions 中不输出日志
73
- silent: !!process.env.GITHUB_ACTIONS,
74
- // poolOptions: {
75
- // threads: {
76
- // singleThread: process.env.SINGLE_THREAD == 'false' ? false : true,
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
- plugins: [react()],
83
- resolve: {
84
- mainFields: ['module'],
85
- },
86
- define: {
87
- 'process.env.__TEST__': true,
88
- 'process.env.__E2E__': false,
89
- },
90
- test: {
91
- globals: true,
92
- setupFiles: resolve(__dirname, './setup/client.ts'),
93
- environment: 'jsdom',
94
- css: false,
95
- alias: tsConfigPathsToAlias(),
96
- include: ['packages/**/{dumi-theme-nocobase,sdk,client}/**/__tests__/**/*.{test,spec}.{ts,tsx}'],
97
- exclude: [
98
- '**/node_modules/**',
99
- '**/dist/**',
100
- '**/lib/**',
101
- '**/es/**',
102
- '**/e2e/**',
103
- '**/__e2e__/**',
104
- '**/{vitest,commitlint}.config.*',
105
- ],
106
- testTimeout: 300000,
107
- // 在 GitHub Actions 中不输出日志
108
- silent: !!process.env.GITHUB_ACTIONS,
109
- server: {
110
- deps: {
111
- inline: ['@juggle/resize-observer', 'clsx'],
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
  };