]> source.dussan.org Git - svg.js.git/commitdiff
fix testing with svgdom
authorUlrich-Matthias Schäfer <ulima.ums@googlemail.com>
Wed, 28 Nov 2018 14:26:03 +0000 (15:26 +0100)
committerUlrich-Matthias Schäfer <ulima.ums@googlemail.com>
Wed, 28 Nov 2018 14:26:03 +0000 (15:26 +0100)
package.json
spec/run.js [deleted file]
spec/runSVGDomTest.js [new file with mode: 0644]
spec/setupSVGDom.js [new file with mode: 0644]
spec/spec/utils/adopter.js

index b3701fee856670989c2dd71ffcb90038dc91a3b3..8fc5e37cce7d6dd43ed523218e757caa825089ad 100644 (file)
@@ -60,7 +60,7 @@
     "server": "npx http-server ./ -d",
     "test": "npx karma start .config/karma.conf.js",
     "test:ci": "karma start .config/karma.conf.saucelabs.js",
-    "test:svgdom": "node -r esm ./spec/run.js || true",
+    "test:svgdom": "node -r esm ./spec/runSVGDomTest.js || true",
     "test:es6": "npx karma start .config/karma.es6.js --single-run",
     "prepublishOnly": "npm run build && npm run build:polyfills && npm test",
     "postPublish": "echo Please upload a zip to the github release containing the dist, license and changelog"
diff --git a/spec/run.js b/spec/run.js
deleted file mode 100644 (file)
index 19c5027..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-import Jasmine from 'jasmine'
-import svgdom from 'svgdom'
-
-import { buildCanvas, buildFixtures, clear } from './helpers.js'
-import { registerWindow } from '../src/main.js'
-
-const jasmine = new Jasmine()
-
-//jasmine.loadConfigFile('spec/support/jasmine.json')
-
-jasmine.loadConfig({
-  "spec_dir": "spec/spec",
-  "spec_files": [
-    "types/*.js",
-    // "!(helpers).js"
-  ],
-  "helpers": [
-    // "helpers.js"
-  ]
-})
-
-jasmine.jasmine.currentEnv_.beforeEach(() => {
-  let win = /*new*/ svgdom
-  registerWindow(win, win.document)
-  buildCanvas()
-  buildFixtures()
-  global.container = win.document.getElementById('canvas')
-})
-
-jasmine.jasmine.currentEnv_.afterEach(() => {
-  clear()
-  global.container = null
-  registerWindow()
-})
-
-jasmine.execute()
diff --git a/spec/runSVGDomTest.js b/spec/runSVGDomTest.js
new file mode 100644 (file)
index 0000000..0db744d
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+  This file has to be run with esm because node does not understand imports yet:
+  node -r esm ./spec/runSvgdomTest.js || true
+
+  Without "|| true" node reports a super long error when a test fails
+ */
+
+import Jasmine from 'jasmine'
+const jasmine = new Jasmine()
+
+jasmine.loadConfig({
+  "spec_dir": "spec/",
+  "spec_files": [
+    "spec/types/*.js",
+    "spec/utils/*.js"
+  ],
+  "helpers": [
+    "setupSVGDom.js"
+  ]
+})
+
+jasmine.execute()
diff --git a/spec/setupSVGDom.js b/spec/setupSVGDom.js
new file mode 100644 (file)
index 0000000..3da401d
--- /dev/null
@@ -0,0 +1,21 @@
+import svgdom from 'svgdom'
+
+import { buildCanvas, buildFixtures, clear } from './helpers.js'
+import { registerWindow } from '../src/main.js'
+
+function setup () {
+  let win = /*new*/ svgdom
+  registerWindow(win, win.document)
+  buildCanvas()
+  buildFixtures()
+  global.container = win.document.getElementById('canvas')
+}
+
+function teardown () {
+  clear()
+  global.container = null
+  registerWindow()
+}
+
+beforeEach(setup)
+afterEach(teardown)
index 53ee198f1d521ea96200cab694916940fd9745ee..80877316abb92af0799da9122c613d80a922bf6d 100644 (file)
@@ -15,13 +15,17 @@ import {
   root
 } from '../../../src/main.js'
 
-import { getWindow } from '../../../src/utils/window.js'
 import { mockAdopt } from '../../../src/utils/adopter.js'
 import { buildFixtures } from '../../helpers.js'
-
-const Node = getWindow().Node
+import { globals } from '../../../src/utils/window.js'
 
 describe('Adopter.js', () => {
+  let Node
+
+  beforeEach(() => {
+    Node = globals.window.Node
+  })
+
   describe('makeNode()', () => {
     it('creates a node of the specified type', () => {
       let rect = makeNode('rect')
@@ -65,7 +69,7 @@ describe('Adopter.js', () => {
     it('searches for element in dom if selector given', () => {
       buildFixtures()
 
-      let path = getWindow().document.getElementById('lineAB')
+      let path = globals.window.document.getElementById('lineAB')
 
       makeInstance('#lineAB')
       makeInstance('#doesNotExist')
@@ -90,8 +94,11 @@ describe('Adopter.js', () => {
     })
 
     it('returns the node if one is passed', () => {
-      let div = document.createElement('div')
-      expect(nodeOrNew('something', div)).toBe(div)
+      let div = globals.window.document.createElement('div')
+      let node = nodeOrNew('something', div)
+
+      // jasmine chucks on this when using the node directly
+      expect(node.outerHTML).toBe(div.outerHTML)
     })
   })