Просмотр исходного кода

test: All e2e tests passing with vitest

Michael Bromley 2 лет назад
Родитель
Сommit
bf64cfd455

+ 1 - 1
e2e-common/get-package-dir.js

@@ -4,7 +4,7 @@ const path = require('path');
  * @return {string}
  * @return {string}
  */
  */
 function getPackageDir() {
 function getPackageDir() {
-    const packageArg = process.env.packageArg || process.argv.find(arg => arg.startsWith('--package='));
+    const packageArg = process.env.PACKAGE || process.argv.find(arg => arg.startsWith('--package='));
     if (!packageArg) {
     if (!packageArg) {
         console.error('No package specified! Please pass --package=<packageDirName>');
         console.error('No package specified! Please pass --package=<packageDirName>');
         process.exit(1);
         process.exit(1);

+ 1 - 0
package.json

@@ -44,6 +44,7 @@
     "@types/node": "^14.14.31",
     "@types/node": "^14.14.31",
     "concurrently": "^6.0.0",
     "concurrently": "^6.0.0",
     "conventional-changelog-core": "^4.2.4",
     "conventional-changelog-core": "^4.2.4",
+    "cross-env": "^7.0.3",
     "find": "^0.3.0",
     "find": "^0.3.0",
     "graphql": "16.6.0",
     "graphql": "16.6.0",
     "husky": "^4.3.0",
     "husky": "^4.3.0",

+ 2 - 1
packages/asset-server-plugin/e2e/asset-server-plugin.e2e-spec.ts

@@ -1,11 +1,12 @@
 /* tslint:disable:no-non-null-assertion */
 /* tslint:disable:no-non-null-assertion */
-import { DefaultLogger, LogLevel, mergeConfig } from '@vendure/core';
+import { mergeConfig } from '@vendure/core';
 import { AssetFragment } from '@vendure/core/e2e/graphql/generated-e2e-admin-types';
 import { AssetFragment } from '@vendure/core/e2e/graphql/generated-e2e-admin-types';
 import { createTestEnvironment } from '@vendure/testing';
 import { createTestEnvironment } from '@vendure/testing';
 import fs from 'fs-extra';
 import fs from 'fs-extra';
 import gql from 'graphql-tag';
 import gql from 'graphql-tag';
 import fetch from 'node-fetch';
 import fetch from 'node-fetch';
 import path from 'path';
 import path from 'path';
+import { afterAll, beforeAll, describe, expect, it } from 'vitest';
 
 
 import { initialData } from '../../../e2e-common/e2e-initial-data';
 import { initialData } from '../../../e2e-common/e2e-initial-data';
 import { testConfig, TEST_SETUP_TIMEOUT_MS } from '../../../e2e-common/test-config';
 import { testConfig, TEST_SETUP_TIMEOUT_MS } from '../../../e2e-common/test-config';

+ 2 - 1
packages/asset-server-plugin/package.json

@@ -12,7 +12,8 @@
     "build": "rimraf lib && tsc -p ./tsconfig.build.json && node build.js",
     "build": "rimraf lib && tsc -p ./tsconfig.build.json && node build.js",
     "lint": "tslint --fix --project ./",
     "lint": "tslint --fix --project ./",
     "test": "jest --config ./jest.config.js",
     "test": "jest --config ./jest.config.js",
-    "e2e": "jest --config ../../e2e-common/jest-config.js --package=asset-server-plugin"
+    "e2e": "cross-env PACKAGE=asset-server-plugin vitest --config ../../e2e-common/vitest.config.ts --run",
+    "e2e:watch": "cross-env PACKAGE=asset-server-plugin vitest --config ../../e2e-common/vitest.config.ts"
   },
   },
   "homepage": "https://www.vendure.io/",
   "homepage": "https://www.vendure.io/",
   "funding": "https://github.com/sponsors/michaelbromley",
   "funding": "https://github.com/sponsors/michaelbromley",

+ 2 - 2
packages/core/package.json

@@ -25,8 +25,8 @@
     "watch": "concurrently yarn:tsc:watch yarn:gulp:watch",
     "watch": "concurrently yarn:tsc:watch yarn:gulp:watch",
     "lint": "tslint --fix --project ./",
     "lint": "tslint --fix --project ./",
     "test": "jest --config ./jest.config.js",
     "test": "jest --config ./jest.config.js",
-    "e2e": "node --experimental-vm-modules ../../node_modules/jest/bin/jest.js --config ../../e2e-common/jest-config.js --package=core",
-    "e2e:vitest": "vitest --config ../../e2e-common/vitest.config.ts",
+    "e2e": "cross-env PACKAGE=core vitest --config ../../e2e-common/vitest.config.ts --run",
+    "e2e:watch": "cross-env PACKAGE=core vitest --config ../../e2e-common/vitest.config.ts",
     "ci": "yarn build"
     "ci": "yarn build"
   },
   },
   "publishConfig": {
   "publishConfig": {

+ 1 - 0
packages/elasticsearch-plugin/e2e/e2e-helpers.ts

@@ -1,6 +1,7 @@
 import { Client } from '@elastic/elasticsearch';
 import { Client } from '@elastic/elasticsearch';
 import { SortOrder } from '@vendure/common/lib/generated-types';
 import { SortOrder } from '@vendure/common/lib/generated-types';
 import { SimpleGraphQLClient } from '@vendure/testing';
 import { SimpleGraphQLClient } from '@vendure/testing';
+import { expect } from 'vitest';
 
 
 import { SearchGetPricesQuery, SearchInput } from '../../core/e2e/graphql/generated-e2e-admin-types';
 import { SearchGetPricesQuery, SearchInput } from '../../core/e2e/graphql/generated-e2e-admin-types';
 import {
 import {

+ 2 - 1
packages/elasticsearch-plugin/e2e/elasticsearch-plugin-uuid.e2e-spec.ts

@@ -1,7 +1,8 @@
-import { DefaultJobQueuePlugin, DefaultLogger, LogLevel, mergeConfig, UuidIdStrategy } from '@vendure/core';
+import { DefaultJobQueuePlugin, mergeConfig, UuidIdStrategy } from '@vendure/core';
 import { createTestEnvironment } from '@vendure/testing';
 import { createTestEnvironment } from '@vendure/testing';
 import gql from 'graphql-tag';
 import gql from 'graphql-tag';
 import path from 'path';
 import path from 'path';
+import { afterAll, beforeAll, describe, expect, it } from 'vitest';
 
 
 import { initialData } from '../../../e2e-common/e2e-initial-data';
 import { initialData } from '../../../e2e-common/e2e-initial-data';
 import { testConfig, TEST_SETUP_TIMEOUT_MS } from '../../../e2e-common/test-config';
 import { testConfig, TEST_SETUP_TIMEOUT_MS } from '../../../e2e-common/test-config';

+ 1 - 8
packages/elasticsearch-plugin/e2e/elasticsearch-plugin.e2e-spec.ts

@@ -14,6 +14,7 @@ import { createTestEnvironment, E2E_DEFAULT_CHANNEL_TOKEN } from '@vendure/testi
 import { fail } from 'assert';
 import { fail } from 'assert';
 import gql from 'graphql-tag';
 import gql from 'graphql-tag';
 import path from 'path';
 import path from 'path';
+import { afterAll, beforeAll, describe, expect, it } from 'vitest';
 
 
 import { initialData } from '../../../e2e-common/e2e-initial-data';
 import { initialData } from '../../../e2e-common/e2e-initial-data';
 import { testConfig, TEST_SETUP_TIMEOUT_MS } from '../../../e2e-common/test-config';
 import { testConfig, TEST_SETUP_TIMEOUT_MS } from '../../../e2e-common/test-config';
@@ -72,14 +73,6 @@ import {
 // tslint:disable-next-line:no-var-requires
 // tslint:disable-next-line:no-var-requires
 const { elasticsearchHost, elasticsearchPort } = require('./constants');
 const { elasticsearchHost, elasticsearchPort } = require('./constants');
 
 
-/**
- * The Elasticsearch tests sometimes take a long time in CI due to limited resources.
- * We increase the timeout to 30 seconds to prevent failure due to timeouts.
- */
-if (process.env.CI) {
-    jest.setTimeout(10 * 3000);
-}
-
 interface SearchProductShopVariables extends SearchProductsShopQueryVariables {
 interface SearchProductShopVariables extends SearchProductsShopQueryVariables {
     input: SearchProductsShopQueryVariables['input'] & {
     input: SearchProductsShopQueryVariables['input'] & {
         // This input field is dynamically added only when the `indexStockStatus` init option
         // This input field is dynamically added only when the `indexStockStatus` init option

+ 2 - 1
packages/elasticsearch-plugin/package.json

@@ -12,7 +12,8 @@
     "build": "rimraf lib && tsc -p ./tsconfig.build.json",
     "build": "rimraf lib && tsc -p ./tsconfig.build.json",
     "lint": "tslint --fix --project ./",
     "lint": "tslint --fix --project ./",
     "test": "jest --config ./jest.config.js",
     "test": "jest --config ./jest.config.js",
-    "e2e": "node e2e/check-connection.js || jest --config ../../e2e-common/jest-config.js --package=elasticsearch-plugin"
+    "e2e": "cross-env PACKAGE=elasticsearch-plugin vitest --config ../../e2e-common/vitest.config.ts --run",
+    "e2e:watch": "cross-env PACKAGE=elasticsearch-plugin vitest --config ../../e2e-common/vitest.config.ts"
   },
   },
   "homepage": "https://www.vendure.io/",
   "homepage": "https://www.vendure.io/",
   "funding": "https://github.com/sponsors/michaelbromley",
   "funding": "https://github.com/sponsors/michaelbromley",

+ 1 - 0
packages/payments-plugin/e2e/mollie-payment.e2e-spec.ts

@@ -14,6 +14,7 @@ import {
 import nock from 'nock';
 import nock from 'nock';
 import fetch from 'node-fetch';
 import fetch from 'node-fetch';
 import path from 'path';
 import path from 'path';
+import { afterAll, beforeAll, describe, expect, it } from 'vitest';
 
 
 import { initialData } from '../../../e2e-common/e2e-initial-data';
 import { initialData } from '../../../e2e-common/e2e-initial-data';
 import { testConfig, TEST_SETUP_TIMEOUT_MS } from '../../../e2e-common/test-config';
 import { testConfig, TEST_SETUP_TIMEOUT_MS } from '../../../e2e-common/test-config';

+ 2 - 1
packages/payments-plugin/e2e/stripe-payment.e2e-spec.ts

@@ -6,9 +6,10 @@ import { createTestEnvironment, E2E_DEFAULT_CHANNEL_TOKEN } from '@vendure/testi
 import gql from 'graphql-tag';
 import gql from 'graphql-tag';
 import nock from 'nock';
 import nock from 'nock';
 import path from 'path';
 import path from 'path';
+import { afterAll, beforeAll, describe, expect, it } from 'vitest';
 
 
 import { initialData } from '../../../e2e-common/e2e-initial-data';
 import { initialData } from '../../../e2e-common/e2e-initial-data';
-import { TEST_SETUP_TIMEOUT_MS, testConfig } from '../../../e2e-common/test-config';
+import { testConfig, TEST_SETUP_TIMEOUT_MS } from '../../../e2e-common/test-config';
 import { StripePlugin } from '../src/stripe';
 import { StripePlugin } from '../src/stripe';
 import { stripePaymentMethodHandler } from '../src/stripe/stripe.handler';
 import { stripePaymentMethodHandler } from '../src/stripe/stripe.handler';
 
 

+ 2 - 1
packages/payments-plugin/package.json

@@ -11,7 +11,8 @@
     "scripts": {
     "scripts": {
         "watch": "tsc -p ./tsconfig.build.json --watch",
         "watch": "tsc -p ./tsconfig.build.json --watch",
         "build": "rimraf package && tsc -p ./tsconfig.build.json",
         "build": "rimraf package && tsc -p ./tsconfig.build.json",
-        "e2e": "jest --config ../../e2e-common/jest-config.js --runInBand --package=payments-plugin",
+        "e2e": "cross-env PACKAGE=payments-plugin vitest --config ../../e2e-common/vitest.config.ts --run",
+        "e2e:watch": "cross-env PACKAGE=payments-plugin vitest --config ../../e2e-common/vitest.config.ts",
         "lint": "tslint --fix --project ./",
         "lint": "tslint --fix --project ./",
         "ci": "yarn build",
         "ci": "yarn build",
         "dev-server:mollie": "yarn build && DB=sqlite node -r ts-node/register e2e/mollie-dev-server.ts"
         "dev-server:mollie": "yarn build && DB=sqlite node -r ts-node/register e2e/mollie-dev-server.ts"

+ 8 - 1
yarn.lock

@@ -7751,6 +7751,13 @@ cron-parser@^4.6.0:
   dependencies:
   dependencies:
     luxon "^3.2.1"
     luxon "^3.2.1"
 
 
+cross-env@^7.0.3:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
+  integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==
+  dependencies:
+    cross-spawn "^7.0.1"
+
 cross-fetch@^3.1.5:
 cross-fetch@^3.1.5:
   version "3.1.5"
   version "3.1.5"
   resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
   resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
@@ -7758,7 +7765,7 @@ cross-fetch@^3.1.5:
   dependencies:
   dependencies:
     node-fetch "2.6.7"
     node-fetch "2.6.7"
 
 
-cross-spawn@^7.0.0, cross-spawn@^7.0.3:
+cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3:
   version "7.0.3"
   version "7.0.3"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
   integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
   integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==