From dd2e95b7655a5e8b42773eb4080613d594a4696c Mon Sep 17 00:00:00 2001 From: Paul Hammant Date: Wed, 26 Apr 2023 20:38:05 +0100 Subject: [PATCH] with_test_harness --- package-lock.json | 14 +++++++------- package.json | 2 +- test/component/ToDoForm_TestHarness.vue | 11 +++++++++++ test/component/todoFormTest.js | 21 ++++++++++++++++++--- 4 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 test/component/ToDoForm_TestHarness.vue diff --git a/package-lock.json b/package-lock.json index 9c21822d..3c7cf12b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@types/nightwatch": "^2.3.18", "@vitejs/plugin-vue": "^4.0.0", "@vue/test-utils": "^2.2.7", - "chromedriver": "109.0.0", + "chromedriver": "112.0.0", "eslint-plugin-vue": "9.9.0", "nightwatch": "2.6.10", "vite": "^4.0.4" @@ -1791,9 +1791,9 @@ } }, "node_modules/chromedriver": { - "version": "109.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-109.0.0.tgz", - "integrity": "sha512-jdmBq11IUwfThLFiygGTZ89qbROSQI4bICQjvOVQy2Bqr1LwC+MFkhwyZp3YG99eehQbZuTlQmmfCZBfpewTNA==", + "version": "112.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-112.0.0.tgz", + "integrity": "sha512-fEw1tI05dmK1KK8MGh99LAppP7zCOPEXUxxbYX5wpIBCCmKasyrwZhk/qsdnxJYKd/h0TfiHvGEj7ReDQXW1AA==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -7048,9 +7048,9 @@ } }, "chromedriver": { - "version": "109.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-109.0.0.tgz", - "integrity": "sha512-jdmBq11IUwfThLFiygGTZ89qbROSQI4bICQjvOVQy2Bqr1LwC+MFkhwyZp3YG99eehQbZuTlQmmfCZBfpewTNA==", + "version": "112.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-112.0.0.tgz", + "integrity": "sha512-fEw1tI05dmK1KK8MGh99LAppP7zCOPEXUxxbYX5wpIBCCmKasyrwZhk/qsdnxJYKd/h0TfiHvGEj7ReDQXW1AA==", "dev": true, "requires": { "@testim/chrome-version": "^1.1.3", diff --git a/package.json b/package.json index d625a75a..01592a8a 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "@types/nightwatch": "^2.3.18", "@vitejs/plugin-vue": "^4.0.0", "@vue/test-utils": "^2.2.7", - "chromedriver": "109.0.0", + "chromedriver": "112.0.0", "eslint-plugin-vue": "9.9.0", "nightwatch": "2.6.10", "vite": "^4.0.4" diff --git a/test/component/ToDoForm_TestHarness.vue b/test/component/ToDoForm_TestHarness.vue new file mode 100644 index 00000000..524f8479 --- /dev/null +++ b/test/component/ToDoForm_TestHarness.vue @@ -0,0 +1,11 @@ + + + diff --git a/test/component/todoFormTest.js b/test/component/todoFormTest.js index 056a0623..18f2c05b 100644 --- a/test/component/todoFormTest.js +++ b/test/component/todoFormTest.js @@ -1,13 +1,28 @@ +const delay = ms => new Promise(res => setTimeout(res, ms)); + describe('Component test for the TodoForm', function() { browser.baseUrl = browser.baseUrl || 'http://localhost:3000'; it('render and test the component', async function(browser) { - const component = await browser.mountComponent('/src/components/ToDoForm.vue'); + const component = await browser.mountComponent('/test/component/ToDoForm_TestHarness.vue'); browser.expect(component).to.be.visible; - const labelEl = await component.find('label[for="new-todo-input"]'); - expect(labelEl).text.toContain('What needs to be done?'); + expect(await component.find('label[for="new-todo-input"]')) + .text.toContain('What needs to be done?'); + + expect(await component.find('#testHarnessOutput')).text.toBe('todo-added:', ); + + //await delay(10000); + browser.clearValue('#new-todo-input') + .sendKeys('#new-todo-input', "abc") + .click("button") + .clearValue('#new-todo-input') + .sendKeys('#new-todo-input', "def") + .click("button"); + + expect(await component.find('#testHarnessOutput')).text.toBe('todo-added: abcdef', ); + });