diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index 22764cbe95..e0a2f5e7b1 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -1,5 +1,5 @@ name: Medusa Pipeline -on: [push, pull_request] +on: [pull_request] jobs: unit-tests: @@ -35,7 +35,7 @@ jobs: - name: Run unit tests run: yarn test - integration-tests: + integration-tests-api: runs-on: ubuntu-latest services: @@ -73,7 +73,68 @@ jobs: uses: ./.github/actions/cache-bootstrap with: extension: integration-tests - + + - name: Build Packages + run: lerna run build + + - name: Install dev cli + run: sudo npm i -g medusa-dev-cli + + - name: Set path to medusa repo + run: medusa-dev --set-path-to-repo `pwd` + + - name: Force install API + run: medusa-dev --force-install + working-directory: integration-tests/api + + - name: Build integration tests + run: yarn build + working-directory: integration-tests/api + + - name: Run API integration tests + run: yarn test:integration:api --maxWorkers=50% --silent=false + env: + DB_PASSWORD: postgres + + integration-tests-plugins: + runs-on: ubuntu-latest + + services: + postgres: + image: postgres + env: + POSTGRES_PASSWORD: postgres + POSTGRES_USER: postgres + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + + steps: + - name: Cancel Previous Runs + uses: styfle/cancel-workflow-action@0.9.1 + with: + access_token: ${{ github.token }} + + - name: Checkout + uses: actions/checkout@v2.3.5 + with: + fetch-depth: 0 + + - name: Setup Node.js environment + uses: actions/setup-node@v2.4.1 + with: + node-version: "14" + cache: "yarn" + + - name: Bootstrap packages + uses: ./.github/actions/cache-bootstrap + with: + extension: integration-tests + - name: Build Packages run: lerna run build @@ -85,13 +146,13 @@ jobs: - name: Force install run: medusa-dev --force-install - working-directory: integration-tests/api + working-directory: integration-tests/plugins - - name: Build integration tests + - name: Build plugin integration tests run: yarn build - working-directory: integration-tests/api + working-directory: integration-tests/plugins - - name: Run integration tests - run: yarn test:integration --maxWorkers=50% --silent=false + - name: Run plugin integration tests + run: yarn test:integration:plugins --maxWorkers=50% --silent=false env: DB_PASSWORD: postgres diff --git a/integration-tests/api/jest.config.js b/integration-tests/api/jest.config.js index 087b324f1d..69e2c815ba 100644 --- a/integration-tests/api/jest.config.js +++ b/integration-tests/api/jest.config.js @@ -1,7 +1,9 @@ // API module.exports = { + name: "api", testEnvironment: `node`, + rootDir: "./", testPathIgnorePatterns: [ `/examples/`, `/www/`, @@ -11,6 +13,7 @@ module.exports = { `__testfixtures__`, `.cache`, ], + transformIgnorePatterns: [`/dist`], transform: { "^.+\\.[jt]s$": `../../jest-transformer.js` }, setupFilesAfterEnv: ["../setup.js"], globalSetup: "../globalSetup.js", diff --git a/integration-tests/jest.config.js b/integration-tests/jest.config.js index fd751bd3ac..aac35ad400 100644 --- a/integration-tests/jest.config.js +++ b/integration-tests/jest.config.js @@ -10,12 +10,15 @@ module.exports = { globalTeardown: "/integration-tests/globalTeardown.js", rootDir: `../`, roots: pkgs, + projects: [ + "/integration-tests/api/jest.config.js", + "/integration-tests/plugins/jest.config.js", + ], testPathIgnorePatterns: [ `/examples/`, `/www/`, `/dist/`, `/node_modules/`, - `/plugins/`, `__tests__/fixtures`, `__testfixtures__`, `.cache`, diff --git a/integration-tests/plugins/__tests__/medusa-plugin-sendgrid/index.js b/integration-tests/plugins/__tests__/medusa-plugin-sendgrid/index.js index 1844ccea57..686ff99345 100644 --- a/integration-tests/plugins/__tests__/medusa-plugin-sendgrid/index.js +++ b/integration-tests/plugins/__tests__/medusa-plugin-sendgrid/index.js @@ -6,6 +6,8 @@ const { setPort, useApi } = require("../../../helpers/use-api") const adminSeeder = require("../../helpers/admin-seeder") +jest.setTimeout(30000) + const { simpleOrderFactory, simpleStoreFactory, diff --git a/integration-tests/plugins/jest.config.js b/integration-tests/plugins/jest.config.js index 2fa84f26ed..4350251337 100644 --- a/integration-tests/plugins/jest.config.js +++ b/integration-tests/plugins/jest.config.js @@ -1,7 +1,9 @@ -// API +process.chdir(__dirname) module.exports = { + name: "Plugins", testEnvironment: `node`, + rootDir: "./", testPathIgnorePatterns: [ `/examples/`, `/www/`, diff --git a/package.json b/package.json index 2ca2835b52..13953e8e09 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,8 @@ "test": "jest", "prettier": "prettier", "test:integration": "jest --config=integration-tests/jest.config.js", + "test:integration:api": "jest --config=integration-tests/jest.config.js --projects=integration-tests/api", + "test:integration:plugins": "jest --config=integration-tests/jest.config.js --projects=integration-tests/plugins", "test:fixtures": "jest --config=docs-util/jest.config.js --runInBand" }, "dependencies": {