diff --git a/.circleci/config.yml b/.circleci/config.yml index 0b31238937b0d05b4d08b1de4676753df88f8938..183ad9048ee951545b83231965ad6801ea4f9f98 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -217,11 +217,3 @@ workflows: - test-two-step-migrations: requires: - build - - node/run: - cache-version: v1 - name: test-webui - pkg-manager: yarn - requires: - - build - version: '16.19' - yarn-run: test:jest diff --git a/.github/workflows/test-js.yml b/.github/workflows/test-js.yml new file mode 100644 index 0000000000000000000000000000000000000000..60b8e318effb5b18404b2ad540e69a4b8f46ab94 --- /dev/null +++ b/.github/workflows/test-js.yml @@ -0,0 +1,41 @@ +name: JavaScript Testing +on: + push: + branches-ignore: + - 'dependabot/**' + paths: + - 'package.json' + - 'yarn.lock' + - '.nvmrc' + - '**/*.js' + - '**/*.snap' + - '.github/workflows/test-js.yml' + + pull_request: + paths: + - 'package.json' + - 'yarn.lock' + - '.nvmrc' + - '**/*.js' + - '**/*.snap' + - '.github/workflows/test-js.yml' + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - name: Clone repository + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + cache: yarn + node-version-file: '.nvmrc' + + - name: Install all yarn packages + run: yarn --frozen-lockfile + + - name: Jest testing + run: yarn test:jest --reporters github-actions summary diff --git a/jest.config.js b/jest.config.js index d7b5610b810f5be3c74cdd916976bfc48f1bfc67..69222ea357da776a0e193cd339ac673eb69e17b5 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,9 +1,7 @@ -module.exports = { - 'testEnvironment': 'jsdom', - 'projects': [ - '<rootDir>/app/javascript/mastodon', - ], - 'testPathIgnorePatterns': [ +/** @type {import('jest').Config} */ +const config = { + testEnvironment: 'jsdom', + testPathIgnorePatterns: [ '<rootDir>/node_modules/', '<rootDir>/vendor/', '<rootDir>/config/', @@ -11,22 +9,17 @@ module.exports = { '<rootDir>/public/', '<rootDir>/tmp/', ], - 'setupFiles': [ - 'raf/polyfill', - ], - 'setupFilesAfterEnv': [ - '<rootDir>/app/javascript/mastodon/test_setup.js', - ], - 'collectCoverageFrom': [ + setupFiles: ['raf/polyfill'], + setupFilesAfterEnv: ['<rootDir>/app/javascript/mastodon/test_setup.js'], + collectCoverageFrom: [ 'app/javascript/mastodon/**/*.js', '!app/javascript/mastodon/features/emoji/emoji_compressed.js', '!app/javascript/mastodon/locales/locale-data/*.js', '!app/javascript/mastodon/service_worker/entry.js', '!app/javascript/mastodon/test_setup.js', ], - 'coverageDirectory': '<rootDir>/coverage', - 'moduleDirectories': [ - '<rootDir>/node_modules', - '<rootDir>/app/javascript', - ], + coverageDirectory: '<rootDir>/coverage', + moduleDirectories: ['<rootDir>/node_modules', '<rootDir>/app/javascript'], }; + +module.exports = config;