From 059bd86f4ceca98bd7124acf74657c929c1f856d Mon Sep 17 00:00:00 2001 From: Daniel Kimmich Date: Tue, 25 Jul 2023 18:46:53 +0200 Subject: [PATCH 1/6] test: add firefox & safari unit tests --- .eslintrc.json | 1 + .github/workflows/verify-build.yml | 36 ++++++++++++++++--- angular.json | 3 +- package-lock.json | 25 +++++++++++-- package.json | 2 ++ .../angular-ecmascript-intl/karma.conf.js | 32 +++++++++++++++++ 6 files changed, 92 insertions(+), 7 deletions(-) create mode 100644 projects/angular-ecmascript-intl/karma.conf.js diff --git a/.eslintrc.json b/.eslintrc.json index 885b0b92..69329513 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,5 +1,6 @@ { "root": true, + "ignorePatterns": "**/*.js", "overrides": [ { "files": "*.ts", diff --git a/.github/workflows/verify-build.yml b/.github/workflows/verify-build.yml index 46df21f5..c7276fc0 100644 --- a/.github/workflows/verify-build.yml +++ b/.github/workflows/verify-build.yml @@ -33,8 +33,8 @@ jobs: - name: lint run: npm run lint - test: - runs-on: ubuntu-20.04 + test-chrome: + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v3 @@ -45,10 +45,38 @@ jobs: run: npm ci - name: test - run: npm run test -- --watch=false --browsers=ChromeHeadless + run: npm run test -- --watch=false --browsers=Chrome + + test-firefox: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + + - name: install + run: npm ci + + - name: test + run: npm run test -- --watch=false --browsers=Firefox + + test-safari: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + + - name: install + run: npm ci + + - name: test + run: npm run test -- --watch=false --browsers=Safari prettier: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 diff --git a/angular.json b/angular.json index 0f611820..166a52be 100644 --- a/angular.json +++ b/angular.json @@ -28,7 +28,8 @@ "builder": "@angular-devkit/build-angular:karma", "options": { "tsConfig": "projects/angular-ecmascript-intl/tsconfig.spec.json", - "polyfills": ["zone.js", "zone.js/testing"] + "polyfills": ["zone.js", "zone.js/testing"], + "karmaConfig": "projects/angular-ecmascript-intl/karma.conf.js" } } } diff --git a/package-lock.json b/package-lock.json index e4c6819b..9bd4e2c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,8 +36,8 @@ "@angular/compiler-cli": "~16.1.0", "@types/jasmine": "~4.3.0", "@types/marked": "^4.0.8", - "@typescript-eslint/eslint-plugin": "^6.2.0", - "@typescript-eslint/parser": "^6.2.0", + "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^6.0.0", "cpy-cli": "^5.0.0", "dayjs": "^1.11.7", "eslint": "^8.39.0", @@ -45,8 +45,10 @@ "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.0", + "karma-firefox-launcher": "^2.1.2", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", + "karma-safari-launcher": "^1.0.0", "ng-packagr": "~16.1.0", "prettier": "~3.0.0", "typescript": "~5.1.0" @@ -11062,6 +11064,16 @@ "node": ">=10.0.0" } }, + "node_modules/karma-firefox-launcher": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz", + "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==", + "dev": true, + "dependencies": { + "is-wsl": "^2.2.0", + "which": "^2.0.1" + } + }, "node_modules/karma-jasmine": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", @@ -11094,6 +11106,15 @@ "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", "dev": true }, + "node_modules/karma-safari-launcher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz", + "integrity": "sha512-qmypLWd6F2qrDJfAETvXDfxHvKDk+nyIjpH9xIeI3/hENr0U3nuqkxaftq73PfXZ4aOuOChA6SnLW4m4AxfRjQ==", + "dev": true, + "peerDependencies": { + "karma": ">=0.9" + } + }, "node_modules/karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", diff --git a/package.json b/package.json index 98ed1f7a..d1cc97b6 100644 --- a/package.json +++ b/package.json @@ -52,8 +52,10 @@ "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.0", + "karma-firefox-launcher": "^2.1.2", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", + "karma-safari-launcher": "^1.0.0", "ng-packagr": "~16.1.0", "prettier": "~3.0.0", "typescript": "~5.1.0" diff --git a/projects/angular-ecmascript-intl/karma.conf.js b/projects/angular-ecmascript-intl/karma.conf.js new file mode 100644 index 00000000..477f5b37 --- /dev/null +++ b/projects/angular-ecmascript-intl/karma.conf.js @@ -0,0 +1,32 @@ +module.exports = function (config) { + config.set({ + basePath: "", + frameworks: ["jasmine", "@angular-devkit/build-angular"], + plugins: [ + require("karma-jasmine"), + require("karma-chrome-launcher"), + require("karma-firefox-launcher"), + require("karma-safari-launcher"), + require("karma-jasmine-html-reporter"), + require("karma-coverage"), + require("@angular-devkit/build-angular/plugins/karma"), + ], + client: { + clearContext: false, + }, + jasmineHtmlReporter: { + suppressAll: true, + }, + coverageReporter: { + dir: require("path").join( + __dirname, + "../../coverage/angular-ecmascript-intl", + ), + subdir: ".", + reporters: [{ type: "html" }, { type: "text-summary" }], + }, + reporters: ["progress", "kjhtml"], + browsers: ["Chrome"], + restartOnFileChange: true, + }); +}; From 2f222363e67ebb8ee12eaa72705ea51509c51e92 Mon Sep 17 00:00:00 2001 From: Daniel Kimmich Date: Tue, 25 Jul 2023 18:50:59 +0200 Subject: [PATCH 2/6] test: resolve unit test failure --- .../src/lib/language/intl-language.pipe.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/angular-ecmascript-intl/src/lib/language/intl-language.pipe.spec.ts b/projects/angular-ecmascript-intl/src/lib/language/intl-language.pipe.spec.ts index 29980fdb..21f2d153 100644 --- a/projects/angular-ecmascript-intl/src/lib/language/intl-language.pipe.spec.ts +++ b/projects/angular-ecmascript-intl/src/lib/language/intl-language.pipe.spec.ts @@ -148,8 +148,8 @@ describe('IntlLanguagePipe', () => { }); testUnit = TestBed.inject(IntlLanguagePipe); - expect(testUnit.transform('en-US', { locale: 'de-DE' })).toEqual( - 'Englisch (Vereinigte Staaten)', + expect(testUnit.transform('de-DE', { locale: 'de-DE' })).toEqual( + 'Deutsch (Deutschland)', ); }); }); From 36122a6a09ffb034b309d137f64754d48e902ead Mon Sep 17 00:00:00 2001 From: Daniel Kimmich <18580672+json-derulo@users.noreply.github.com> Date: Tue, 25 Jul 2023 19:00:00 +0200 Subject: [PATCH 3/6] Update verify-build.yml --- .github/workflows/verify-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/verify-build.yml b/.github/workflows/verify-build.yml index c7276fc0..e0488a2f 100644 --- a/.github/workflows/verify-build.yml +++ b/.github/workflows/verify-build.yml @@ -1,6 +1,7 @@ name: Verify build on: + workflow_dispatch: pull_request_target: types: [opened, synchronize, reopened] From 9d114d3b0e609970772f5386c0ec772dfd63f900 Mon Sep 17 00:00:00 2001 From: Daniel Kimmich Date: Tue, 25 Jul 2023 19:05:59 +0200 Subject: [PATCH 4/6] chore: setup concurrency --- .github/workflows/verify-build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/verify-build.yml b/.github/workflows/verify-build.yml index e0488a2f..c5ca34e5 100644 --- a/.github/workflows/verify-build.yml +++ b/.github/workflows/verify-build.yml @@ -5,6 +5,9 @@ on: pull_request_target: types: [opened, synchronize, reopened] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + jobs: build: runs-on: ubuntu-latest From eb66e7f4099c8fca037ca0ae71f990d80bb797be Mon Sep 17 00:00:00 2001 From: Daniel Kimmich Date: Tue, 25 Jul 2023 19:20:58 +0200 Subject: [PATCH 5/6] chore: revert concurrency changes --- .github/workflows/verify-build.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/verify-build.yml b/.github/workflows/verify-build.yml index c5ca34e5..e0488a2f 100644 --- a/.github/workflows/verify-build.yml +++ b/.github/workflows/verify-build.yml @@ -5,9 +5,6 @@ on: pull_request_target: types: [opened, synchronize, reopened] -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - jobs: build: runs-on: ubuntu-latest From 0591f26a80a15a1a8edafd25a1724f6c86cc9578 Mon Sep 17 00:00:00 2001 From: Daniel Kimmich Date: Tue, 25 Jul 2023 19:22:30 +0200 Subject: [PATCH 6/6] update ubuntu latest --- .github/workflows/verify-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/verify-build.yml b/.github/workflows/verify-build.yml index e0488a2f..513cc87b 100644 --- a/.github/workflows/verify-build.yml +++ b/.github/workflows/verify-build.yml @@ -35,7 +35,7 @@ jobs: run: npm run lint test-chrome: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3