From 5b99575d797e322faa8b7340cb7f9409229a5206 Mon Sep 17 00:00:00 2001 From: sellers3 Date: Sun, 1 Dec 2019 23:35:14 +0000 Subject: [PATCH 1/5] Fixed pdf linting --- modules/pdf.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/pdf.js b/modules/pdf.js index 6c91153..8133271 100644 --- a/modules/pdf.js +++ b/modules/pdf.js @@ -10,15 +10,15 @@ module.exports = class Order { createPDF(data) { console.log('data = ', data) const doc = new pdf() - doc.text(20, 20, 'Menu') - doc.text(20, 30, 'Name') - doc.text(100, 30, 'Type') - doc.text(140, 30, 'Price') + doc.text(20, 20, 'Menu') + doc.text(20, 30, 'Name') + doc.text(100, 30, 'Type') + doc.text(140, 30, 'Price') let line = 40 for(let i = 0; i< data.itemName.length; i++) { - doc.text(20, line, data.itemName[i]) - doc.text(100, line, data.itemType[i]) - doc.text(140, line,`£ ${data.itemPrice[i]}`) + doc.text(20, line, data.itemName[i]) + doc.text(100, line, data.itemType[i]) + doc.text(140, line,`£ ${data.itemPrice[i]}`) line = line + 10 } doc.setProperties({ From 38e77e614ba07f03d943b7365f78a368b880c08b Mon Sep 17 00:00:00 2001 From: sellers3 Date: Sun, 1 Dec 2019 23:59:01 +0000 Subject: [PATCH 2/5] yml --- .gitlab-ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7f2241a..0f7d7b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,8 +2,8 @@ image: node:10.0.0 stages: - build - - code-testing - - acceptance-testing + - quality-check + - testing install-dependencies: stage: build @@ -14,13 +14,13 @@ install-dependencies: - node_modules/ linting: - stage: code-testing + stage: quality-check script: - npm install - npm run linter unit-testing: - stage: acceptance-testing + stage: testing script: - npm install - apt-get update @@ -28,7 +28,7 @@ unit-testing: - npm run test code-coverage: - stage: acceptance-testing + stage: testing script: - npm install - apt-get update @@ -36,7 +36,7 @@ code-coverage: - npm run coverage acceptance-tests: - stage: acceptance-testing + stage: testing script: - npm install --only=dev - apt-get update From c9878de0f9058816293c55c67f8ad6c9c1a987f9 Mon Sep 17 00:00:00 2001 From: sellers3 Date: Mon, 2 Dec 2019 01:16:39 +0000 Subject: [PATCH 3/5] tested authentication --- acceptance tests/admin.test.js | 4 ++- acceptance tests/staff.test.js | 60 ++++++++++++++++++++++++++++++++++ routes/user.js | 1 + views/register.handlebars | 2 +- 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 acceptance tests/staff.test.js diff --git a/acceptance tests/admin.test.js b/acceptance tests/admin.test.js index e3f3aab..ad607b5 100644 --- a/acceptance tests/admin.test.js +++ b/acceptance tests/admin.test.js @@ -5,7 +5,7 @@ const puppeteer = require('puppeteer') const { configureToMatchImageSnapshot } = require('jest-image-snapshot') const width = 800 const height = 600 -const delayMS = 10 +const delayMS = 100 const shell = require('shelljs') let browser @@ -32,6 +32,8 @@ describe('menu', () => { test('Main Menu', async done => { + jest.setTimeout(30000) + await page.goto('http://localhost:8080/login', { timeout: 30000, waitUntil: 'load' }) await page.goto('http://localhost:8080/login', { timeout: 30000, waitUntil: 'load' }) diff --git a/acceptance tests/staff.test.js b/acceptance tests/staff.test.js new file mode 100644 index 0000000..335b612 --- /dev/null +++ b/acceptance tests/staff.test.js @@ -0,0 +1,60 @@ +/* eslint-disable max-len */ +'use strict' + +const puppeteer = require('puppeteer') +const { configureToMatchImageSnapshot } = require('jest-image-snapshot') +const width = 800 +const height = 600 +const delayMS = 100 +const shell = require('shelljs') + +let browser +let page + +// threshold is the difference in pixels before the snapshots dont match +const toMatchImageSnapshot = configureToMatchImageSnapshot({ + customDiffConfig: { threshold: 2 }, + noColors: true, +}) +expect.extend({ toMatchImageSnapshot }) + +beforeAll( async() => { + browser = await puppeteer.launch({ headless: false, slowMo: delayMS, args: [`--window-size=${width},${height}`, '--no-sandbox'] }) + page = await browser.newPage() + await page.setViewport({ width, height }) +}) + +beforeEach( () => shell.exec('./abolishDB.sh')) + +afterAll( () => browser.close() ) + +describe('menu', () => { + + test('Main Menu', async done => { + + jest.setTimeout(30000) + + await page.goto('http://localhost:8080/login', { timeout: 30000, waitUntil: 'load' }) + await page.goto('http://localhost:8080/login', { timeout: 30000, waitUntil: 'load' }) + + await page.click('[href="/register"]') + + await page.select('select[name=auth]', 'Kitchen') + await page.type('input[name=user]', 'Craig') + await page.type('input[name=pass]', 'bread') + + await page.click('input[type=submit]') + + await page.type('input[name=user]', 'Craig') + await page.type('input[name=pass]', 'bread') + + await page.click('input[type=submit]') + + await page.click('button[name=Order]') + const title = await page.title() + expect(title).toBe('Main Menu') + + done() + + }) +}) diff --git a/routes/user.js b/routes/user.js index e4c5da5..b97d873 100644 --- a/routes/user.js +++ b/routes/user.js @@ -35,6 +35,7 @@ router.post('/register', koaBody, async ctx => { try { // extract the data from the request const body = ctx.request.body + console.log(body) // call the functions in the module const user = await new User(dbUsers) await user.register(body.user, body.pass, body.auth) diff --git a/views/register.handlebars b/views/register.handlebars index ae77efb..9c229dd 100644 --- a/views/register.handlebars +++ b/views/register.handlebars @@ -16,7 +16,7 @@

Username:

From 771ed6d5516c4cd893d73763cfb3e40cc1770291 Mon Sep 17 00:00:00 2001 From: sellers3 Date: Mon, 2 Dec 2019 01:52:28 +0000 Subject: [PATCH 4/5] added headless --- acceptance tests/staff.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/acceptance tests/staff.test.js b/acceptance tests/staff.test.js index 335b612..a8dc669 100644 --- a/acceptance tests/staff.test.js +++ b/acceptance tests/staff.test.js @@ -19,7 +19,7 @@ const toMatchImageSnapshot = configureToMatchImageSnapshot({ expect.extend({ toMatchImageSnapshot }) beforeAll( async() => { - browser = await puppeteer.launch({ headless: false, slowMo: delayMS, args: [`--window-size=${width},${height}`, '--no-sandbox'] }) + browser = await puppeteer.launch({ headless: true, slowMo: delayMS, args: [`--window-size=${width},${height}`, '--no-sandbox'] }) page = await browser.newPage() await page.setViewport({ width, height }) }) From 2986382559b33d6410b8e5e03272a0751b8fd396 Mon Sep 17 00:00:00 2001 From: sellers3 Date: Mon, 2 Dec 2019 02:14:08 +0000 Subject: [PATCH 5/5] added pdf to package.json --- modules/pdf.js | 6 +----- routes/menu.js | 1 + 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/modules/pdf.js b/modules/pdf.js index 8133271..969cb50 100644 --- a/modules/pdf.js +++ b/modules/pdf.js @@ -28,14 +28,10 @@ module.exports = class Order { keywords: 'Menu, Restaurant, Price,', creator: 'User'}) doc.addPage() - //doc.setFontSize(22) - //doc.text(20, 20, 'This is a title') - //doc.setFontSize(16) - //doc.text(20, 30, 'This is some normal sized text underneath.') const fileName = `testFile${new Date().getSeconds()}.pdf` // eslint-disable-next-line handle-callback-err fs.writeFile(fileName, doc.output(), (err, data) => { - console.log(`${fileName } was created! great success!`) + console.log(`${fileName} was created! great success!`) }) } } diff --git a/routes/menu.js b/routes/menu.js index 9c0d99c..e911ad3 100644 --- a/routes/menu.js +++ b/routes/menu.js @@ -92,6 +92,7 @@ router.get('/menu', async ctx => { router.post('/menu', async ctx => { try { const body = ctx.request.body + console.log(body) const pdf = new PDF() pdf.createPDF(body) ctx.redirect('/menu')