]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Add Jest Runner
authorTiago Melo <tmelo@suse.com>
Wed, 16 May 2018 10:31:31 +0000 (11:31 +0100)
committerTiago Melo <tmelo@suse.com>
Thu, 17 May 2018 16:53:38 +0000 (17:53 +0100)
Signed-off-by: Tiago Melo <tmelo@suse.com>
src/pybind/mgr/dashboard/frontend/.babelrc [new file with mode: 0644]
src/pybind/mgr/dashboard/frontend/package.json
src/pybind/mgr/dashboard/frontend/src/jestGlobalMocks.ts [new file with mode: 0644]
src/pybind/mgr/dashboard/frontend/src/setupJest.ts [new file with mode: 0644]
src/pybind/mgr/dashboard/frontend/tsconfig.json

diff --git a/src/pybind/mgr/dashboard/frontend/.babelrc b/src/pybind/mgr/dashboard/frontend/.babelrc
new file mode 100644 (file)
index 0000000..002b4aa
--- /dev/null
@@ -0,0 +1,3 @@
+{
+  "presets": ["env"]
+}
index 05754a6ce80d5d6aed71040a28bb886ca0297ec7..215dacd162974407ac3bf3250a30bdf4f2891988 100644 (file)
     "makePretty": "pretty-quick --staged"
   },
   "private": true,
+  "jest": {
+    "preset": "jest-preset-angular",
+    "setupTestFrameworkScriptFile": "<rootDir>/src/setupJest.ts",
+    "transformIgnorePatterns": ["node_modules/(?!@ngrx|ngx-bootstrap|@progress)"],
+    "transform": {
+      "^.+\\.(ts|html)$": "<rootDir>/node_modules/jest-preset-angular/preprocessor.js",
+      "^.+\\.js$": "babel-jest"
+    },
+    "setupFiles": ["jest-canvas-mock"],
+    "coverageReporters" : [
+      "text",
+      "cobertura"
+    ]
+  },
   "dependencies": {
     "@angular/animations": "^5.0.0",
     "@angular/common": "^5.0.0",
     "@angular/language-service": "^5.0.0",
     "@types/jasmine": "~2.5.53",
     "@types/jasminewd2": "~2.0.2",
+    "@types/jest": "^22.2.3",
     "@types/node": "~6.0.60",
+    "babel-preset-env": "^1.7.0",
     "codelyzer": "^4.0.1",
     "copy-webpack-plugin": "4.3.0",
     "jasmine-core": "~2.6.2",
     "jasmine-spec-reporter": "~4.1.0",
+    "jest": "^22.4.3",
+    "jest-canvas-mock": "^1.0.2",
+    "jest-preset-angular": "^5.2.2",
     "karma": "~1.7.0",
     "karma-chrome-launcher": "~2.1.1",
     "karma-cli": "~1.0.1",
diff --git a/src/pybind/mgr/dashboard/frontend/src/jestGlobalMocks.ts b/src/pybind/mgr/dashboard/frontend/src/jestGlobalMocks.ts
new file mode 100644 (file)
index 0000000..5486d7c
--- /dev/null
@@ -0,0 +1,15 @@
+const mock = () => {
+  let storage = {};
+  return {
+    getItem: key => key in storage ? storage[key] : null,
+    setItem: (key, value) => storage[key] = value || '',
+    removeItem: key => delete storage[key],
+    clear: () => storage = {},
+  };
+};
+
+Object.defineProperty(window, 'localStorage', {value: mock()});
+Object.defineProperty(window, 'sessionStorage', {value: mock()});
+Object.defineProperty(window, 'getComputedStyle', {
+  value: () => ['-webkit-appearance']
+});
diff --git a/src/pybind/mgr/dashboard/frontend/src/setupJest.ts b/src/pybind/mgr/dashboard/frontend/src/setupJest.ts
new file mode 100644 (file)
index 0000000..c5e3f7e
--- /dev/null
@@ -0,0 +1,12 @@
+import 'jest-preset-angular';
+import 'jest-zone-patch';
+
+// common rxjs imports
+import 'rxjs/add/observable/throw';
+import 'rxjs/add/operator/catch';
+import 'rxjs/add/operator/do';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/switchMap';
+// ...
+
+import './jestGlobalMocks';
index a6c016bf38ad7b4c02385b2e5797752c227bb2e0..7004efcc201c63024891c9811a9c69b9b516f411 100644 (file)
@@ -8,12 +8,8 @@
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "target": "es5",
-    "typeRoots": [
-      "node_modules/@types"
-    ],
-    "lib": [
-      "es2017",
-      "dom"
-    ]
+    "typeRoots": ["node_modules/@types"],
+    "lib": ["es2017", "dom"],
+    "allowJs": true
   }
 }