| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- 'use strict'
-
- const test = require('ava')
- const { stub } = require('sinon')
- const Hapi = require('@hapi/hapi')
-
- const plugin = require('../lib/plugins/profile')
-
- const MatchQueue = require('../lib/models/matchqueue')
-
- test('path / should return ok on GET', async t => {
- /**
- * Create a new server and register services,
- * models and routes for testing
- * -
- * NOTE: We use a mocked registerModel() and register
- * models manually. Normally this is handled by
- * Schwifty at runtime.
- */
- const server = Hapi.server()
- server.registerModel = () => {}
- server.models = () => ({ MatchQueue })
- await plugin.register(server)
-
- /**
- * Route parameters
- */
- const profile_id = 1
- const target_id = 2
- const reinsert = true
-
- /**
- * Replace Objection model methods with our own custom functions
- * !: Kinda janky - might be better to temp knex sqlite instance
- */
- stub(server.models()['MatchQueue'], 'query').returns({
- // Mocked for markAsDeleted()
- patch: () => ({
- where: () => ({
- andWhere: () => ({
- first: () => ({ patch: 'bop' }),
- }),
- }),
- }),
- insert: queueRecord => {
- t.is(queueRecord.profile_id, profile_id)
- t.is(queueRecord.target_id, target_id)
- t.is(queueRecord.is_deleted, !reinsert)
- },
- // Mocked for getQueue()
- where: () => ({
- andWhere: (cmd, val) => {
- return [
- { mocked_profile_id: 1, is_deleted: val },
- { mocked_profile_id: 2, is_deleted: val },
- { mocked_profile_id: 3, is_deleted: val },
- ]
- },
- }),
- })
-
- /**
- * Test the server with registered models and services
- */
- const { payload } = await server.inject({
- method: 'PATCH',
- url: `/${profile_id}/queue/${target_id}/delete?reinsert=${reinsert}`,
- })
- const res = JSON.parse(payload)
-
- t.deepEqual(res, [
- { mocked_profile_id: 1, is_deleted: false },
- { mocked_profile_id: 2, is_deleted: false },
- { mocked_profile_id: 3, is_deleted: false },
- ])
- })
|