diff --git a/cucumber/features/login.feature b/cucumber/features/login.feature index 36cc4de..38fe003 100644 --- a/cucumber/features/login.feature +++ b/cucumber/features/login.feature @@ -7,7 +7,6 @@ Feature: Allow users to login and logout Background: Given I am on the home page - @watch Scenario: A user can login Given I have an account and I logged in When I sign out @@ -15,14 +14,12 @@ Feature: Allow users to login and logout Then I should be logged in And I can edit my profile - @watch Scenario: A user cannot login with bad information Given I have an account and I logged in When I sign out When I enter incorrect authentication information Then I should see a user not found error - @watch Scenario: A user can register and login Given I register with some name, password and email Then I should be registered @@ -32,7 +29,6 @@ Feature: Allow users to login and logout Then I should be logged in And I can edit my profile - @skip Scenario: A user cannot register without accepting service conditions Given I register with some name, password and email but without accept conditions Then I shouldn't be registered diff --git a/cucumber/features/pages.feature b/cucumber/features/pages.feature new file mode 100644 index 0000000..a421709 --- /dev/null +++ b/cucumber/features/pages.feature @@ -0,0 +1,17 @@ +@watch +Feature: Test all secundary pages + + Scenario: Check that all secondary pages work well + Given a list of page ids and contents + | license | License | + | tos | Terms of Service | + | credits | Credits | + | privacy | Privacy Policy | + | activeFires | Active Fires | + Then I check that all pages works properly + + Scenario: Check that other non visible pages work well + Given a list of non visible pages ids and contents + | status | Status | + | error | Upps | + Then I check that all non visible pages works properly diff --git a/cucumber/features/steps_definitions/hooks.js b/cucumber/features/steps_definitions/hooks.js index 5d97a50..ba4c0c5 100644 --- a/cucumber/features/steps_definitions/hooks.js +++ b/cucumber/features/steps_definitions/hooks.js @@ -5,13 +5,14 @@ this.Before(() => { // global.expect = require('@xolvio/jasmine-expect').expect; + /* Not used if (!this.initMyCmds) { client.addCommand('waitForClickable', function elementClickable(selector, timeout) { this.waitForVisible(selector, timeout); this.waitForEnabled(selector, timeout); }); this.initMyCmds = true; - } + } */ // server.call('fixtures/reset'); // server.call('emailStub/reset'); diff --git a/cucumber/features/steps_definitions/pages.js b/cucumber/features/steps_definitions/pages.js new file mode 100644 index 0000000..ff2632a --- /dev/null +++ b/cucumber/features/steps_definitions/pages.js @@ -0,0 +1,43 @@ +/* global module expect require process client */ + +const { goHome } = require('./helper.js'); + +// Does no works with arrow func +module.exports = function () { + let pages; + + this.Given(/^a list of page ids and contents$/, (table, callback) => { + pages = table.raw(); + callback(); + }); + + function processPage(i) { + const id = `#${pages[i][0]}`; + const content = pages[i][1]; + client.waitForVisible(id, 10000); + client.click(id); + client.waitForText('#react-root', content); + } + + this.Given(/^a list of non visible pages ids and contents$/, (table, callback) => { + pages = table.raw(); + callback(); + }); + + this.Then(/^I check that all non visible pages works properly$/, (callback) => { + for (let i = 0; i < pages.length; i += 1) { + client.url(`${process.env.ROOT_URL}/${pages[i][0]}`); + const content = pages[i][1]; + client.waitForText('#react-root', content); + } + callback(); + }); + + this.Then(/^I check that all pages works properly$/, (callback) => { + goHome(client); + for (let i = 0; i < pages.length; i += 1) { + processPage(i); + } + callback(); + }); +}; diff --git a/imports/ui/components/Footer/Footer.js b/imports/ui/components/Footer/Footer.js index 2b9d0d2..22de370 100644 --- a/imports/ui/components/Footer/Footer.js +++ b/imports/ui/components/Footer/Footer.js @@ -1,8 +1,11 @@ +/* eslint-disable import/no-absolute-path */ + import React from 'react'; import { year } from '@cleverbeagle/dates'; import { Link } from 'react-router-dom'; import { Grid } from 'react-bootstrap'; import { translate } from 'react-i18next'; +import { testId } from '/imports/ui/components/Utils/TestUtils'; import './Footer.scss'; @@ -21,19 +24,19 @@ const Footer = (props) => {