Skip to content

Commit 6d66b29

Browse files
committed
e2e test for chat
1 parent ae5506f commit 6d66b29

File tree

3 files changed

+58
-3
lines changed

3 files changed

+58
-3
lines changed

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
"chat": "cd examples/chat && webpack-dev-server --inline --hot --config ../webpack.shared.config.js",
1717
"build": "node build/build.js",
1818
"build-examples": "webpack --config examples/webpack.build-all.config.js",
19-
"test": "eslint src && BABEL_ENV=development mocha --compilers js:babel-core/register",
19+
"unit": "BABEL_ENV=development mocha test/unit/test.js --compilers js:babel-core/register",
20+
"e2e": "casperjs test --concise ./test/e2e",
21+
"test": "eslint src && npm run unit && npm run build-examples && npm run e2e",
2022
"docs": "cd docs && gitbook serve",
2123
"deploy-docs": "cd docs && ./deploy.sh"
2224
},
@@ -40,6 +42,7 @@
4042
"babel-preset-es2015-rollup": "^1.1.1",
4143
"babel-preset-stage-2": "^6.1.18",
4244
"babel-runtime": "^5.8.0",
45+
"casperjs": "^1.1.0-beta5",
4346
"chai": "^3.4.1",
4447
"css-loader": "^0.23.1",
4548
"eslint": "^2.2.0",

test/e2e/chat.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
casper.test.begin('chat', 16, function (test) {
2+
casper
3+
.start('examples/chat/index.html')
4+
.then(function () {
5+
test.assertSelectorHasText('.thread-count', 'Unread threads: 2')
6+
test.assertElementCount('.thread-list-item', 3)
7+
test.assertSelectorHasText('.thread-list-item.active', 'Functional Heads')
8+
test.assertSelectorHasText('.message-thread-heading', 'Functional Heads')
9+
test.assertElementCount('.message-list-item', 2)
10+
test.assertSelectorHasText('.message-list-item:nth-child(1) .message-author-name', 'Bill')
11+
test.assertSelectorHasText('.message-list-item:nth-child(1) .message-text', 'Hey Brian')
12+
})
13+
.then(function () {
14+
this.sendKeys('.message-composer', 'hi')
15+
enter()
16+
})
17+
.wait(50) // the demo simulates API latency
18+
.then(function () {
19+
test.assertElementCount('.message-list-item', 3)
20+
test.assertSelectorHasText('.message-list-item:nth-child(3)', 'hi')
21+
})
22+
.thenClick('.thread-list-item:nth-child(2)', function () {
23+
test.assertSelectorHasText('.thread-list-item.active', 'Dave and Bill')
24+
test.assertSelectorHasText('.message-thread-heading', 'Dave and Bill')
25+
test.assertElementCount('.message-list-item', 2)
26+
test.assertSelectorHasText('.message-list-item:nth-child(1) .message-author-name', 'Bill')
27+
test.assertSelectorHasText('.message-list-item:nth-child(1) .message-text', 'Hey Dave')
28+
})
29+
.then(function () {
30+
this.sendKeys('.message-composer', 'hi')
31+
enter()
32+
})
33+
.wait(50) // the demo simulates API latency
34+
.then(function () {
35+
test.assertElementCount('.message-list-item', 3)
36+
test.assertSelectorHasText('.message-list-item:nth-child(3)', 'hi')
37+
})
38+
.run(function () {
39+
test.done()
40+
})
41+
})
42+
43+
function enter () {
44+
casper.evaluate(function () {
45+
// casper.mouseEvent can't set keyCode
46+
var field = document.querySelector('.message-composer')
47+
var e = document.createEvent('HTMLEvents')
48+
e.initEvent('keyup', true, true)
49+
e.keyCode = 13
50+
field.dispatchEvent(e)
51+
})
52+
}

test/test.js renamed to test/unit/test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { expect } from 'chai'
22
import Vue from 'vue'
3-
import Vuex from '../src'
4-
import * as util from '../src/util'
3+
import Vuex from '../../src'
4+
import * as util from '../../src/util'
55

66
Vue.use(Vuex)
77

0 commit comments

Comments
 (0)