diff options
author | golabek <tomasz.golabek@nokia.com> | 2019-01-28 09:34:48 +0100 |
---|---|---|
committer | golabek <tomasz.golabek@nokia.com> | 2019-02-01 11:05:48 +0100 |
commit | ec4f95457ec430838feeae6da48d0fd011ddffa9 (patch) | |
tree | d7c7b40d648a66c86f47ec26fc15acc4660dee8b | |
parent | 974fc96fdc47cafb6f7169d197e69cb81e6df4a9 (diff) |
Introduce JS unit tests into VID
maven -> npm -> gulp -> jest frameworks added in a mentioned order.
Change-Id: I1865228973eb31188fb052e8c9629f0ac01e48a7
Issue-ID: VID-391
Signed-off-by: Tomasz Golabek <tomasz.golabek@nokia.com>
-rw-r--r-- | vid-app-common/gulpfile.js | 18 | ||||
-rw-r--r-- | vid-app-common/jest.config.js | 16 | ||||
-rw-r--r-- | vid-app-common/package.json | 28 | ||||
-rwxr-xr-x | vid-app-common/pom.xml | 31 | ||||
-rwxr-xr-x | vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.js | 1 | ||||
-rw-r--r-- | vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.test.js | 33 | ||||
-rw-r--r-- | vid-app-common/test-config.js | 4 |
7 files changed, 130 insertions, 1 deletions
diff --git a/vid-app-common/gulpfile.js b/vid-app-common/gulpfile.js new file mode 100644 index 000000000..898f84fe4 --- /dev/null +++ b/vid-app-common/gulpfile.js @@ -0,0 +1,18 @@ +var gulp = require("gulp"); +var jest = require("jest"); + +// -------------- Run Jest Tests -------------- + +gulp.task("test", function() { + return jest.runCLI({}, ".") + .then((result) => { + if (!result.results.success){ + console.error("Execution of js tests failed with status 1"); + process.exit(1); + } + }); +}); + +// -------------- Default Task -------------- + +gulp.task("default", gulp.parallel(["test"]));
\ No newline at end of file diff --git a/vid-app-common/jest.config.js b/vid-app-common/jest.config.js new file mode 100644 index 000000000..e9ca59b11 --- /dev/null +++ b/vid-app-common/jest.config.js @@ -0,0 +1,16 @@ +module.exports = { + verbose: true, + roots: [ + "<rootDir>/src/main/webapp/app" + ], + modulePaths: [ + "<rootDir>/src/main/webapp/app/vid/external" + ], + setupFilesAfterEnv: ["<rootDir>/test-config.js"], + collectCoverage: true, + collectCoverageFrom: [ + "src/**/*.js", + "!**/node_modules/**", + "!**/vendor/**" + ] +};
\ No newline at end of file diff --git a/vid-app-common/package.json b/vid-app-common/package.json new file mode 100644 index 000000000..fb8d5d762 --- /dev/null +++ b/vid-app-common/package.json @@ -0,0 +1,28 @@ +{ + "name": "vid-app-common", + "version": "4.0.0-SNAPSHOT", + "dependencies": { + "angular-bootstrap-multiselect": "^1.1.11", + "angular-feature-flags": "1.6.1", + "angular-moment": "^1.3.0", + "components-bootstrap": "3.3.7", + "glyphicons-only-bootstrap": "^1.0.1", + "lodash": "^4.17.11", + "moment": "^2.24.0", + "ng-file-upload": "^12.2.13" + }, + "scripts": { + "prebuild": "npm install", + "build": "gulp" + }, + "devDependencies": { + "angular-mocks": "1.2.19", + "gulp": "^4.0.0", + "gulp-inject": "^5.0.2", + "gulp-jest": "^4.0.2", + "gulp-uglify": "^3.0.1", + "jest": "^24.0.0", + "jest-mock": "^24.0.0", + "stream-series": "^0.1.1" + } +} diff --git a/vid-app-common/pom.xml b/vid-app-common/pom.xml index 7cd30a21f..1ea069137 100755 --- a/vid-app-common/pom.xml +++ b/vid-app-common/pom.xml @@ -37,6 +37,9 @@ <kotlin.version>1.3.11</kotlin.version> <kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget> + <eirslett.version>1.6</eirslett.version> + <node.version>v6.16.0</node.version> + </properties> @@ -158,6 +161,34 @@ </plugin> <plugin> + <groupId>com.github.eirslett</groupId> + <artifactId>frontend-maven-plugin</artifactId> + <version>${eirslett.version}</version> + <executions> + <execution> + <id>install node and npm</id> + <goals> + <goal>install-node-and-npm</goal> + </goals> + <phase>generate-resources</phase> + <configuration> + <nodeVersion>${node.version}</nodeVersion> + </configuration> + </execution> + <execution> + <id>npm run-script build</id> + <configuration> + <arguments>run-script build</arguments> + </configuration> + <goals> + <goal>npm</goal> + </goals> + <phase>generate-resources</phase> + </execution> + </executions> + </plugin> + + <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.js b/vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.js index bb3acad1b..3bf05ea1a 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.js @@ -1583,7 +1583,6 @@ appDS2.controller('TreeCtrl', ['$scope', function ($scope) { $scope.$broadcast(FIELD.ID.ANGULAR_UI_TREE_EXPANDALL);
};
-
}]);
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.test.js b/vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.test.js new file mode 100644 index 000000000..4af9a2982 --- /dev/null +++ b/vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.test.js @@ -0,0 +1,33 @@ +require('./aaiSubscriberController'); +const jestMock = require('jest-mock'); + +describe('TreeCtrl testing', () => { + let $scope; + beforeEach( + angular.mock.module('app') + ); + + beforeEach(inject(function (_$controller_) { + $scope = {}; + _$controller_('TreeCtrl', { + $scope: $scope + }); + })); + + test('Verify expandAll calls broadcast with expand-all parameter', () => { + // given + const broadcast = jestMock.fn(); + $scope.$broadcast = broadcast; + FIELD = { + ID: { + ANGULAR_UI_TREE_EXPANDALL: "angular-ui-tree:expand-all" + } + }; + // when + $scope.expandAll(); + // then + expect(broadcast).toHaveBeenCalledWith("angular-ui-tree:expand-all"); + }); + +}); + diff --git a/vid-app-common/test-config.js b/vid-app-common/test-config.js new file mode 100644 index 000000000..32bac3873 --- /dev/null +++ b/vid-app-common/test-config.js @@ -0,0 +1,4 @@ +require("angular-feature-flags/demo/vendor/angular.min"); +require("angular-mocks"); + +global.appDS2=angular.module("app", []); |