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);