selenium: Replace ES5 one-var assignments with const/let per line
[lhc/web/wiklou.git] / tests / selenium / specs / page.js
1 const assert = require( 'assert' );
2 const Api = require( 'wdio-mediawiki/Api' );
3 const DeletePage = require( '../pageobjects/delete.page' );
4 const RestorePage = require( '../pageobjects/restore.page' );
5 const EditPage = require( '../pageobjects/edit.page' );
6 const HistoryPage = require( '../pageobjects/history.page' );
7 const UndoPage = require( '../pageobjects/undo.page' );
8 const UserLoginPage = require( 'wdio-mediawiki/LoginPage' );
9 const Util = require( 'wdio-mediawiki/Util' );
10
11 describe( 'Page', function () {
12 let content, name, bot;
13
14 before( async function () {
15 bot = await Api.bot();
16 } );
17
18 beforeEach( function () {
19 browser.deleteAllCookies();
20 content = Util.getTestString( 'beforeEach-content-' );
21 name = Util.getTestString( 'BeforeEach-name-' );
22 } );
23
24 it( 'should be previewable', function () {
25 EditPage.preview( name, content );
26
27 assert.strictEqual( EditPage.heading.getText(), 'Creating ' + name );
28 assert.strictEqual( EditPage.displayedContent.getText(), content );
29 assert( EditPage.content.isDisplayed(), 'editor is still present' );
30 assert( !EditPage.conflictingContent.isDisplayed(), 'no edit conflict happened' );
31 } );
32
33 it( 'should be creatable', function () {
34 // create
35 EditPage.edit( name, content );
36
37 // check
38 assert.strictEqual( EditPage.heading.getText(), name );
39 assert.strictEqual( EditPage.displayedContent.getText(), content );
40 } );
41
42 it( 'should be re-creatable', function () {
43 const initialContent = Util.getTestString( 'initialContent-' );
44
45 // create and delete
46 browser.call( async () => {
47 await bot.edit( name, initialContent, 'create for delete' );
48 await bot.delete( name, 'delete prior to recreate' );
49 } );
50
51 // re-create
52 EditPage.edit( name, content );
53
54 // check
55 assert.strictEqual( EditPage.heading.getText(), name );
56 assert.strictEqual( EditPage.displayedContent.getText(), content );
57 } );
58
59 it( 'should be editable @daily', function () {
60 // create
61 browser.call( async () => {
62 await bot.edit( name, content, 'create for edit' );
63 } );
64
65 // edit
66 const editContent = Util.getTestString( 'editContent-' );
67 EditPage.edit( name, editContent );
68
69 // check
70 assert.strictEqual( EditPage.heading.getText(), name );
71 assert( EditPage.displayedContent.getText().includes( editContent ) );
72 } );
73
74 it( 'should have history @daily', function () {
75 // create
76 browser.call( async () => {
77 await bot.edit( name, content, `created with "${content}"` );
78 } );
79
80 // check
81 HistoryPage.open( name );
82 assert.strictEqual( HistoryPage.comment.getText(), `created with "${content}"` );
83 } );
84
85 it( 'should be deletable', function () {
86 // create
87 browser.call( async () => {
88 await bot.edit( name, content, 'create for delete' );
89 } );
90
91 // login
92 UserLoginPage.loginAdmin();
93
94 // delete
95 DeletePage.delete( name, 'delete reason' );
96
97 // check
98 assert.strictEqual(
99 DeletePage.displayedContent.getText(),
100 '"' + name + '" has been deleted. See deletion log for a record of recent deletions.\nReturn to Main Page.'
101 );
102 } );
103
104 it( 'should be restorable', function () {
105 // create and delete
106 browser.call( async () => {
107 await bot.edit( name, content, 'create for delete' );
108 await bot.delete( name, 'delete for restore' );
109 } );
110
111 // login
112 UserLoginPage.loginAdmin();
113
114 // restore
115 RestorePage.restore( name, 'restore reason' );
116
117 // check
118 assert.strictEqual( RestorePage.displayedContent.getText(), name + ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' );
119 } );
120
121 it( 'should be undoable', function () {
122 let previousRev, undoRev;
123 browser.call( async () => {
124 // create
125 await bot.edit( name, content, 'create to edit and undo' );
126
127 // edit
128 const response = await bot.edit( name, Util.getTestString( 'editContent-' ) );
129 previousRev = response.edit.oldrevid;
130 undoRev = response.edit.newrevid;
131 } );
132
133 UndoPage.undo( name, previousRev, undoRev );
134
135 assert.strictEqual( EditPage.displayedContent.getText(), content );
136 } );
137
138 } );