Browse Source

Add extended test for button clicking

Oz Tiram 5 years ago
parent
commit
2ba094c328
3 changed files with 72 additions and 2 deletions
  1. 66 0
      package-lock.json
  2. 1 0
      package.json
  3. 5 2
      tests/test.app.js

+ 66 - 0
package-lock.json

@@ -1039,6 +1039,23 @@
         "wait-for-expect": "^1.2.0"
       }
     },
+    "@testing-library/jest-dom": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-4.1.0.tgz",
+      "integrity": "sha512-cKAONDmJKGJ2DSu6R/+lgA8i8uyZIx4CaOiiK0yMjp+2UecH6kfjunJiy5hfExKMtR74eyzFriqO1w9aTC8VyQ==",
+      "dev": true,
+      "requires": {
+        "@babel/runtime": "^7.5.1",
+        "chalk": "^2.4.1",
+        "css": "^2.2.3",
+        "css.escape": "^1.5.1",
+        "jest-diff": "^24.0.0",
+        "jest-matcher-utils": "^24.0.0",
+        "lodash": "^4.17.11",
+        "pretty-format": "^24.0.0",
+        "redent": "^3.0.0"
+      }
+    },
     "@testing-library/svelte": {
       "version": "1.8.0",
       "resolved": "https://registry.npmjs.org/@testing-library/svelte/-/svelte-1.8.0.tgz",
@@ -1827,6 +1844,24 @@
         "which": "^1.2.9"
       }
     },
+    "css": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+      "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "source-map": "^0.6.1",
+        "source-map-resolve": "^0.5.2",
+        "urix": "^0.1.0"
+      }
+    },
+    "css.escape": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
+      "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=",
+      "dev": true
+    },
     "cssom": {
       "version": "0.3.8",
       "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
@@ -3146,6 +3181,12 @@
       "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
       "dev": true
     },
+    "indent-string": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+      "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+      "dev": true
+    },
     "inflight": {
       "version": "1.0.6",
       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -4269,6 +4310,12 @@
         "mime-db": "1.40.0"
       }
     },
+    "min-indent": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz",
+      "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=",
+      "dev": true
+    },
     "minimatch": {
       "version": "3.0.4",
       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -4904,6 +4951,16 @@
         "util.promisify": "^1.0.0"
       }
     },
+    "redent": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+      "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+      "dev": true,
+      "requires": {
+        "indent-string": "^4.0.0",
+        "strip-indent": "^3.0.0"
+      }
+    },
     "regenerate": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
@@ -5731,6 +5788,15 @@
       "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
       "dev": true
     },
+    "strip-indent": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+      "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+      "dev": true,
+      "requires": {
+        "min-indent": "^1.0.0"
+      }
+    },
     "supports-color": {
       "version": "5.5.0",
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",

+ 1 - 0
package.json

@@ -4,6 +4,7 @@
   "devDependencies": {
     "@babel/core": "^7.6.0",
     "@babel/preset-env": "^7.6.0",
+    "@testing-library/jest-dom": "^4.1.0",
     "@testing-library/svelte": "^1.8.0",
     "babel-jest": "^24.9.0",
     "jest": "^24.9.0",

+ 5 - 2
tests/test.app.js

@@ -1,6 +1,10 @@
 import App from '../src/App.svelte'
+import { fireEvent, waitForElement } from '@testing-library/dom'
 import { render, cleanup } from '@testing-library/svelte'
+import '@testing-library/jest-dom/extend-expect'
+
 beforeEach(cleanup)
+
 describe('App', () => {
   test('should render greeting', () => {
     const { getByText } = render(App, { props: {name: "world"}})
@@ -21,11 +25,10 @@ describe('App', () => {
 
   test('should change button text after click', async () => {
     const { getByText } = render(App, { props: { name: 'world' } })
-    expect(getByText('Hello world!'))
 
     fireEvent.click(getByText('Clicked 0 times'))
 
-    const button = await waitForElement(() => getByText('Clicked 1 times'))
+    const button = await waitForElement(() => getByText('Clicked 1 time'))
 
     expect(button).toBeInTheDocument()
   })