77 lines
2.1 KiB
JavaScript
77 lines
2.1 KiB
JavaScript
'use strict';
|
||
|
||
/**
|
||
* Integration tests – main controller (controllers/main.js)
|
||
*
|
||
* Covers: pingAPI_get, getAppConfig_get, setAppConfig_post
|
||
*/
|
||
|
||
const { connectDB, disconnectDB, clearCollection } = require('./jest.setup');
|
||
const { mockReq, mockRes, newId } = require('./mock_data');
|
||
|
||
let Settings;
|
||
|
||
beforeAll(async () => {
|
||
await connectDB();
|
||
Settings = require('../../model/setting');
|
||
});
|
||
|
||
afterAll(async () => {
|
||
await disconnectDB();
|
||
});
|
||
|
||
const mainCtl = require('../../controllers/main');
|
||
|
||
describe('main controller – data methods', () => {
|
||
afterAll(async () => {
|
||
await clearCollection(Settings);
|
||
});
|
||
|
||
// -------------------------------------------------------------------------
|
||
describe('pingAPI_get', () => {
|
||
it('responds with a pong / alive message', async () => {
|
||
const req = mockReq();
|
||
const res = mockRes();
|
||
|
||
await mainCtl.pingAPI_get(req, res);
|
||
|
||
// pingAPI_get uses res.send() or res.json()
|
||
const called = res.json.mock.calls.length > 0 || res.send.mock.calls.length > 0;
|
||
expect(called).toBe(true);
|
||
});
|
||
});
|
||
|
||
// -------------------------------------------------------------------------
|
||
describe('getAppConfig_get', () => {
|
||
it('returns an app config object', async () => {
|
||
const req = mockReq({ query: {} });
|
||
const res = mockRes();
|
||
|
||
await mainCtl.getAppConfig_get(req, res);
|
||
|
||
const called = res.json.mock.calls.length > 0 || res.send.mock.calls.length > 0;
|
||
expect(called).toBe(true);
|
||
expect(typeof res._data).toBe('object');
|
||
});
|
||
});
|
||
|
||
// -------------------------------------------------------------------------
|
||
describe('setAppConfig_post', () => {
|
||
it('saves an app config value and returns the saved document', async () => {
|
||
await clearCollection(Settings);
|
||
|
||
const req = mockReq({
|
||
uid: newId(),
|
||
ut: '1',
|
||
body: { key: 'testKey', value: 'testValue' },
|
||
});
|
||
const res = mockRes();
|
||
|
||
await mainCtl.setAppConfig_post(req, res);
|
||
|
||
expect(res.json).toHaveBeenCalled();
|
||
expect(res._data).toBeTruthy();
|
||
});
|
||
});
|
||
});
|