Conflicts: test/e2e/index.js test/e2e/lib/mail.js test/e2e/lib/mocha-e2e.js test/e2e/lib/page.js test/e2e/lib/worker-counter.js test/e2e/page-objects/subscription.js
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| /* eslint-disable prefer-arrow-callback */
 | |
| 
 | |
| const config = require('../lib/config');
 | |
| const { useCase, step, driver } = require('../lib/mocha-e2e');
 | |
| const expect = require('chai').expect;
 | |
| 
 | |
| const page = require('../page-objects/user');
 | |
| const home = require('../page-objects/home');
 | |
| 
 | |
| suite('Login use-cases', () => {
 | |
|     before(() => driver.manage().deleteAllCookies());
 | |
| 
 | |
|     test('User can access home page', async () => {
 | |
|         await home.navigate();
 | |
|     });
 | |
| 
 | |
|     test('Anonymous user cannot access restricted content', async () => {
 | |
|         await driver.navigate().to(config.baseUrl + '/settings');
 | |
|         await page.login.waitUntilVisible();
 | |
|         await page.login.waitForFlash();
 | |
|         expect(await page.login.getFlash()).to.contain('Need to be logged in to access restricted content');
 | |
|     });
 | |
| 
 | |
|     useCase('Login (invalid credential)', async () => {
 | |
|         await step('User navigates to the login page.', async () => {
 | |
|             await page.login.navigate();
 | |
|         });
 | |
| 
 | |
|         await step('User fills in the user name and incorrect password.', async () => {
 | |
|             await page.login.setValue('usernameInput', config.users.admin.username);
 | |
|             await page.login.setValue('passwordInput', 'invalid');
 | |
|             await page.login.submit();
 | |
|         });
 | |
| 
 | |
|         await step('System shows a flash notice that credentials are invalid.', async () => {
 | |
|             await page.login.waitForFlash();
 | |
|             expect(await page.login.getFlash()).to.contain('Incorrect username or password');
 | |
|         });
 | |
|     });
 | |
| 
 | |
|     useCase('Login and logout', async () => {
 | |
|         await step('User navigates to the login page.', async () => {
 | |
|             await page.login.navigate();
 | |
|         });
 | |
| 
 | |
|         await step('User fills in the user name and password.', async () => {
 | |
|             await page.login.setValue('usernameInput', config.users.admin.username);
 | |
|             await page.login.setValue('passwordInput', config.users.admin.password);
 | |
|             await page.login.submit();
 | |
|         });
 | |
| 
 | |
|         await step('System shows the home page and a flash notice that user has been logged in.', async () => {
 | |
|             await home.waitUntilVisibleAfterRefresh();
 | |
|             await home.waitForFlash();
 | |
|             expect(await home.getFlash()).to.contain('Logged in as admin');
 | |
|         });
 | |
| 
 | |
|         await step('User navigates to its account.', async () => {
 | |
|             await page.account.navigate();
 | |
|         });
 | |
| 
 | |
|         await step('User logs out.', async () => {
 | |
|             await page.logout.navigate();
 | |
|             await home.waitForFlash();
 | |
|             expect(await home.getFlash()).to.contain('logged out');
 | |
|         });
 | |
|     });
 | |
| });
 |