Skip to content
Permalink
Browse files
Added more tests
  • Loading branch information
sellers3 committed Nov 26, 2019
1 parent 0cfc479 commit 4e469f26db1d168256f8bc78495afb278a120fd1
Show file tree
Hide file tree
Showing 5 changed files with 117 additions and 16 deletions.
@@ -44,7 +44,6 @@ describe('menu', () => {
//await page.waitFor(1000)

let title = await page.title()
expect(title).toBe('Log In')

await page.type('input[name=user]', 'Craig')
await page.type('input[name=pass]', 'bread')
@@ -83,4 +82,109 @@ describe('menu', () => {

done()
})

test('Admin add/edit', async done => {

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.type('input[name=user]', 'Craig')
await page.type('input[name=pass]', 'bread')

//await page.waitFor(1000)
await page.click('input[type=submit]')
//await page.waitFor(1000)
let title = await page.title()

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=Menu]')

await page.click('button[name=adding]')
title = await page.title()
expect(title).toBe('Adding an Item')

await page.type('input[name=itemName]', 'Spaghetti')
await page.type('input[name=itemPricePounds]', '8')
await page.type('input[name=itemPricePence]', '50')
await page.type('input[name=itemType]', 'main')

await page.click('input[type=submit]')

const itemName = await page.evaluate(() => {
const dom = document.querySelectorAll('table tr td:first-child')
const arr = Array.from(dom)
return arr.map(td => td.innerText)
})

console.log(itemName)
expect(itemName).toStrictEqual(['Spaghetti'])

await page.click('button[name=edit]')
await page.type('input[name=itemName]', 'Bolognese ')
await page.click('input[type=submit]')

const newItemName = await page.evaluate(() => {
const dom = document.querySelectorAll('table tr td:first-child')
const arr = Array.from(dom)
return arr.map(td => td.innerText)
})

console.log(newItemName)
expect(newItemName).toStrictEqual(['Bolognese Spaghetti'])

await page.waitFor(1000)

done()
})

test('Admin New Order/Ready Order', async done => {

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.type('input[name=user]', 'Craig')
await page.type('input[name=pass]', 'bread')

//await page.waitFor(1000)
await page.click('input[type=submit]')
//await page.waitFor(1000)
let title = await page.title()

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=Menu]')

await page.click('button[name=adding]')
title = await page.title()
expect(title).toBe('Adding an Item')

await page.type('input[name=itemName]', 'Spaghetti')
await page.type('input[name=itemPricePounds]', '8')
await page.type('input[name=itemPricePence]', '50')
await page.type('input[name=itemType]', 'main')

await page.click('input[type=submit]')

await page.click('button[name=mainmenu]')

await page.goto('http://localhost:8080/order/1', { timeout: 30000, waitUntil: 'load' })
await page.goto('http://localhost:8080/order/1', { timeout: 30000, waitUntil: 'load' })

await page.click('input[id=add]')

await page.waitFor(2000)

done()
})
})
Binary file not shown.
@@ -93,7 +93,7 @@ router.post('/login', async ctx => {
await user.login(body.user, body.pass)
const auth = await user.getAuth(body.user)
ctx.session.authorised = auth.auth
return ctx.render('mainmenu')
return ctx.redirect('/mainmenu')
} catch(err) {
await ctx.render('error', {message: err.message})
}
@@ -184,9 +184,7 @@ router.post('/ready', async ctx => {
} else if (body.submit === 'Unready') {
await order.setUnready(body.ID)
}
const unready = await order.getNotReadyOrders()
const ready = await order.getReadyOrders()
await ctx.render('ready', {unreadyOrder: unready, readyOrder: ready})
await ctx.redirect('/ready')
} catch(err) {
await ctx.render('error', {message: err.message})
}
@@ -209,7 +207,7 @@ router.post('/adding', async ctx => {
const order = await new Order(dbMenu)
order.createPrice(body)
await order.addItem(body)
await ctx.render('adding')
await ctx.redirect('/menu')
} catch(err) {
await ctx.render('error', {message: err.message})
}
@@ -222,7 +220,7 @@ router.get('/menu', async ctx => {
const order = await new Order(dbMenu)
const data = await order.getItemsName()
await ctx.render('menu', {items: data})
} else await ctx.render('mainmenu')
} else await ctx.redirect('/mainmenu')
} catch(err) {
await ctx.render('error', {message: err.message})
}
@@ -245,8 +243,7 @@ router.post('/edit', async ctx => {
const order = await new Order(dbMenu)
order.createPrice(body)
await order.editItem(body)
const data = await order.getItemsName()
await ctx.render('menu', {items: data})
await ctx.redirect('/menu')
} catch(err) {
await ctx.render('error', {message: err.message})
}
@@ -16,10 +16,10 @@
</tr>
{{#each items}}
<tr>
<td id="itemName">{{this.name}}</td>
<td id="itemType">{{this.type}}</td>
<td id="itemPrice">{{this.price}}</td>
<td><button type="button" name="{{this.ID}}" onclick="window.location='/edit/{{this.ID}}'">Edit</button></td>
<td id="itemName" value="{{this.name}}">{{this.name}}</td>
<td id="itemType" value="{{this.type}}">{{this.type}}</td>
<td id="itemPrice" value="{{this.price}}">{{this.price}}</td>
<td><button type="button" name="edit" onclick="window.location='/edit/{{this.ID}}'">Edit</button></td>
</tr>
{{/each}}
</table>
@@ -16,7 +16,7 @@
<option>Select</option>
<option selected>{{table}}</option>
{{#each number}}
<option value = "{{this.table}}">{{this.table}}</option>
<option value="{{this.table}}">{{this.table}}</option>
{{/each}}
</select>
</td>
@@ -31,9 +31,9 @@
<form method="POST" action="/order/{{this.tableNumber}}">
<tr>
<td id="itemName">{{this.name}}</td>
<td><input name="submit" type="submit" value="Add" ></td>
<td><input id="add" name="add" type="submit" value="Add" ></td>
<td id="itemQuantity" value="{{this.quantity}}">{{this.quantity}}</td>
<td><input name="submit" type="submit" value="Remove" ></td>
<td><input name="remove" type="submit" value="Remove" ></td>
<td id="itemID" value="{{this.ID}}"><input type="hidden" name="itemID" value="{{this.ID}}"></td>
<td><input type="hidden" name="tableNumber" value="{{this.tableNumber}}"></td>
</tr>

0 comments on commit 4e469f2

Please sign in to comment.