From 4a8faeaa8e9014af5390c281a4f14f87b5bb8c43 Mon Sep 17 00:00:00 2001 From: DominikIwanek <141320833+DominikIwanek@users.noreply.github.com> Date: Tue, 5 Sep 2023 13:01:41 +0200 Subject: [PATCH] [ACS-5107] - improve gha after introducing nx workspace (#3420) * [ACS-5107] - Fix failing unit test on CI * [ACS-5107] - Fix failing unit test on CI * [ACS-5107] - Fix failing unit test on CI * [ACS-5107] - Fix failing unit test on CI --- app/karma.conf.js | 11 +++++++ app/project.json | 53 +----------------------------- app/src/app/app.components.spec.ts | 31 +++++++++++++++++ app/src/test.ts | 33 +++++++++---------- 4 files changed, 58 insertions(+), 70 deletions(-) create mode 100644 app/karma.conf.js create mode 100644 app/src/app/app.components.spec.ts diff --git a/app/karma.conf.js b/app/karma.conf.js new file mode 100644 index 0000000000..e2838524bc --- /dev/null +++ b/app/karma.conf.js @@ -0,0 +1,11 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html +const getBaseKarmaConfig = require('../karma.conf'); + +module.exports = function (config) { + const baseConfig = getBaseKarmaConfig(); + config.set({ + ...baseConfig, + coverageReporter: {}, + }); +}; diff --git a/app/project.json b/app/project.json index 66f72c684c..8509a7042b 100644 --- a/app/project.json +++ b/app/project.json @@ -227,59 +227,8 @@ "executor": "@angular-devkit/build-angular:karma", "options": { "main": "app/src/test.ts", - "karmaConfig": "./karma.conf.js", - "sourceMap": true, - "polyfills": "app/src/polyfills.ts", - "stylePreprocessorOptions": { - "includePaths": [ - "projects/aca-content/src/lib/ui/application.scss", - "node_modules" - ] - }, "tsConfig": "app/tsconfig.spec.json", - "scripts": [ - "node_modules/pdfjs-dist/build/pdf.js", - "node_modules/pdfjs-dist/web/pdf_viewer.js", - "node_modules/moment/min/moment.min.js" - ], - "styles": [ - "app/src/styles.scss", - "projects/aca-content/src/lib/ui/application.scss" - ], - "assets": [ - "app/src/assets", - "app/src/favicon-96x96.png", - { - "glob": "**/*", - "input": "projects/aca-content/assets", - "output": "/assets" - }, - { - "input": "app/.tmp", - "output": "/", - "glob": "app.config.json" - }, - { - "glob": "**/*", - "input": "node_modules/@alfresco/adf-core/prebuilt-themes", - "output": "/assets/prebuilt-themes" - }, - { - "glob": "**/*", - "input": "node_modules/@alfresco/adf-core/bundles/assets", - "output": "/assets" - }, - { - "glob": "**/*", - "input": "node_modules/@alfresco/adf-content-services/bundles/assets", - "output": "/assets" - }, - { - "glob": "pdf.worker.min.js", - "input": "node_modules/pdfjs-dist/build", - "output": "/" - } - ] + "karmaConfig": "app/karma.conf.js" }, "configurations": { "adfprod": { diff --git a/app/src/app/app.components.spec.ts b/app/src/app/app.components.spec.ts new file mode 100644 index 0000000000..800fd42597 --- /dev/null +++ b/app/src/app/app.components.spec.ts @@ -0,0 +1,31 @@ +/*! + * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved. + * + * Alfresco Example Content Application + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * from Hyland Software. If not, see . + */ + +// Dummy test as long as there are no tests in this lib. +// Nx with karma executor doesn't provide: passWithNoTests flag and requires at least one test to be included in the lib +describe('AppComponentTest', () => { + it('', () => { + expect(true).toBeTrue(); + }); +}); diff --git a/app/src/test.ts b/app/src/test.ts index 38d89071d2..66d02e858e 100644 --- a/app/src/test.ts +++ b/app/src/test.ts @@ -24,29 +24,26 @@ // This file is required by __karma__.conf.js and loads recursively all the .spec and framework files -import 'zone.js/dist/long-stack-trace-zone'; -import 'zone.js/dist/proxy.js'; -import 'zone.js/dist/sync-test'; -import 'zone.js/dist/jasmine-patch'; -import 'zone.js/dist/async-test'; -import 'zone.js/dist/fake-async-test'; +import 'zone.js'; +import 'zone.js/testing'; import { getTestBed } from '@angular/core/testing'; import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; -// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. -declare const __karma__: any; -declare const require: any; - -// Prevent __karma__ from running prematurely. -__karma__.loaded = function () {}; +declare const require: { + context( + path: string, + deep?: boolean, + filter?: RegExp + ): { + (id: string): T; + keys(): string[]; + }; +}; // First, initialize the Angular testing environment. -getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: { destroyAfterEach: false } -}); +getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + // Then we find all the tests. const context = require.context('./', true, /\.spec\.ts$/); // And load the modules. -context.keys().map(context); -// Finally, start __karma__ to run the tests. -__karma__.start(); +context.keys().forEach(context);