From 236d06308d993881114f80bb6d2fe8715f224e5b Mon Sep 17 00:00:00 2001 From: vjrj Date: Thu, 1 Feb 2018 17:45:04 +0100 Subject: [PATCH] Added more cucumber tests (wip) --- cucumber/features/login.feature | 4 -- cucumber/features/pages.feature | 17 ++++++++ cucumber/features/steps_definitions/hooks.js | 3 +- cucumber/features/steps_definitions/pages.js | 43 ++++++++++++++++++++ imports/ui/components/Footer/Footer.js | 11 +++-- private/pages/license.md | 2 - 6 files changed, 69 insertions(+), 11 deletions(-) create mode 100644 cucumber/features/pages.feature create mode 100644 cucumber/features/steps_definitions/pages.js 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) => { diff --git a/private/pages/license.md b/private/pages/license.md index bf129b9..6a26155 100644 --- a/private/pages/license.md +++ b/private/pages/license.md @@ -1,5 +1,3 @@ -# Licencia - ## Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.