@@ -4,55 +4,56 @@ var injectBrowser = require('testium/mocha');
4
4
var assert = require ( "power-assert" ) ;
5
5
var AppPage = require ( "./page-objects/app-page" ) ;
6
6
var browser ;
7
- function addTodo ( text ) {
8
- browser . setValue ( '.todoText' , text ) ;
9
- browser . click ( '.todoBtn' ) ;
10
- }
11
7
describe ( "app-test" , function ( ) {
12
- var text = 'todo text' ;
8
+ var inputText = 'todo text' ;
9
+ var page ;
13
10
before ( injectBrowser ( ) ) ;
14
11
beforeEach ( function ( ) {
15
12
browser = this . browser ;
16
- this . browser . navigateTo ( "/" ) ;
13
+ page = new AppPage ( this . browser ) ;
17
14
} ) ;
18
15
context ( "when テキストボックスに文字を入れて送信した時" , function ( ) {
19
16
beforeEach ( function ( ) {
20
- addTodo ( text )
17
+ page . addTodo ( inputText )
21
18
} ) ;
22
19
it ( "should li要素が作成されている" , function ( ) {
23
- var list = browser . getElements ( '.todoList li' ) ;
24
- assert ( list . length > 0 ) ;
20
+ var list = page . getTodoItems ( ) ;
21
+ assert ( list . length === 1 ) ;
25
22
} ) ;
26
23
27
24
it ( "should リストアイテムのテキストは送信したものと一致している" , function ( ) {
28
- browser . assert . elementHasText ( '.todoList li' , text )
25
+ var todo = page . getTodoItems ( ) [ 0 ] ;
26
+ var text = todo . get ( "text" ) ;
27
+ assert . equal ( text , inputText ) ;
29
28
} ) ;
30
29
} ) ;
31
- describe ( "todoについて " , function ( ) {
30
+ describe ( "todo " , function ( ) {
32
31
beforeEach ( function ( ) {
33
- addTodo ( text ) ;
32
+ page . addTodo ( inputText ) ;
34
33
} ) ;
35
- context ( "checkboxをクリックしたら" , function ( ) {
36
- it ( "should `is-complete`が追加される" , function ( ) {
37
- browser . click ( '.todoList li input[type="checkbox"]' ) ;
34
+ context ( "when click the checkbox" , function ( ) {
35
+ it ( "should added `is-complete`" , function ( ) {
36
+ var todo = page . getTodoItems ( ) [ 0 ] ;
37
+ page . toggleTodo ( todo ) ;
38
38
browser . assert . elementExists ( ".is-complete" ) ;
39
39
} ) ;
40
40
} ) ;
41
- context ( "removeBtnをクリックして、confirmでキャンセルしても" , function ( ) {
42
- it ( "li要素は消えない" , function ( ) {
41
+ context ( "when click removeBtn, then cancel confirm" , function ( ) {
42
+ it ( "should have todo item" , function ( ) {
43
+ var todo = page . getTodoItems ( ) [ 0 ] ;
43
44
// confirmがfalseを返すようにする = キャンセル
44
45
browser . evaluate ( "return window.confirm = function() { return " + false + "; };" ) ;
45
-
46
- browser . click ( '.todoList li .removeBtn' ) ;
47
- browser . assert . elementExists ( ".todoList li" ) ;
46
+ page . removeTodo ( todo ) ;
47
+ assert ( page . getTodoItems ( ) . length > 0 ) ;
48
48
} ) ;
49
49
} ) ;
50
- context ( "removeBtnをクリックしてconfirmでOKしたら" , function ( ) {
51
- it ( "li要素が消える" , function ( ) {
50
+ context ( "when click removeBtn, then ok to confirm" , function ( ) {
51
+ it ( "should have nottodo item" , function ( ) {
52
+ var todo = page . getTodoItems ( ) [ 0 ] ;
52
53
// confirmがtrueを返すようにする = OK
53
54
browser . evaluate ( "return window.confirm = function() { return " + true + "; };" ) ;
54
- browser . click ( '.todoList li .removeBtn' ) ;
55
- browser . assert . elementDoesntExist ( ".todoList li" ) ;
55
+ page . removeTodo ( todo ) ;
56
+ assert ( page . getTodoItems ( ) . length === 0 ) ;
56
57
} ) ;
57
58
} ) ;
58
59
} ) ;
0 commit comments