1
0
mirror of https://github.com/Foltik/Shimapan synced 2024-09-21 11:11:22 -04:00
shimapan/test/testUtil.js

83 lines
2.1 KiB
JavaScript
Raw Normal View History

2017-10-13 18:08:13 -04:00
process.env.NODE_ENV = 'test';
const chai = require('chai');
chai.use(require('chai-http'));
const should = chai.should();
2017-10-13 18:08:13 -04:00
const User = require('../app/models/User.js');
const Invite = require('../app/models/Invite.js');
const Upload = require('../app/models/Upload.js');
2018-07-26 15:18:54 -04:00
const Key = require('../app/models/Key.js');
2018-07-26 13:17:37 -04:00
const Buffer = require('buffer').Buffer;
const crypto = require('crypto');
const fs = require('fs').promises;
2017-10-13 18:08:13 -04:00
//---------------- DATABASE UTIL ----------------//
2018-07-25 18:45:38 -04:00
exports.clearDatabase = async () =>
Promise.all([
User.remove({}),
Invite.remove({}),
2018-07-26 13:19:47 -04:00
Key.remove({}),
2018-07-25 18:45:38 -04:00
Upload.remove({})
]);
//---------------- API ROUTES ----------------//
2018-07-26 13:17:37 -04:00
exports.login = async (credentials, agent) =>
agent
2018-07-25 18:45:38 -04:00
.post('/api/auth/login')
.send(credentials);
2017-10-13 18:08:13 -04:00
2018-07-26 13:17:37 -04:00
exports.logout = agent =>
agent
.post('/api/auth/logout');
exports.createInvite = async (invite) =>
Invite.create(invite);
2017-10-13 18:08:13 -04:00
2018-07-26 13:17:37 -04:00
exports.registerUser = async (user, agent) =>
agent
2017-10-13 18:08:13 -04:00
.post('/api/auth/register')
2018-07-25 18:45:38 -04:00
.send(user);
2017-10-13 18:08:13 -04:00
2018-07-26 13:17:37 -04:00
exports.whoami = async (agent) =>
agent
.get('/api/auth/whoami')
.send();
2018-07-25 18:45:38 -04:00
//---------------- TEST ENTRY CREATION ----------------//
2017-10-13 18:08:13 -04:00
2018-07-25 18:45:38 -04:00
exports.createTestInvite = async () =>
2018-07-26 13:17:37 -04:00
exports.createInvite({code: 'code', scope: ['file.upload']});
2017-10-13 18:08:13 -04:00
2018-07-26 13:17:37 -04:00
exports.createTestInvites = async (n) =>
Promise.all(
Array.from(new Array(n), (val, index) => 'code' + index)
.map(code => exports.createInvite({code: code}))
);
2017-10-13 18:08:13 -04:00
2018-07-26 13:17:37 -04:00
exports.createTestUser = async agent => {
2018-07-25 18:45:38 -04:00
await exports.createTestInvite();
2018-07-26 13:17:37 -04:00
return exports.registerUser({username: 'user', password: 'pass', invite: 'code'}, agent);
2017-10-13 18:08:13 -04:00
};
2018-07-26 13:17:37 -04:00
exports.createTestSession = async agent => {
await exports.createTestUser(agent);
await exports.login({username: 'user', password: 'pass'}, agent);
2017-10-13 18:08:13 -04:00
};
2018-07-26 13:17:37 -04:00
exports.createTestFile = async (size, name) =>
fs.writeFile(name, Buffer.allocUnsafe(size));
2017-10-13 18:08:13 -04:00
2018-07-26 13:17:37 -04:00
exports.deleteTestFile = async name =>
fs.unlink(name);
2017-10-13 18:08:13 -04:00
2018-07-26 13:17:37 -04:00
//---------------- UPLOADS ----------------//
2017-10-13 18:08:13 -04:00
2018-07-26 13:17:37 -04:00
exports.upload = (file, agent) =>
agent
.post('/api/upload')
.attach('file', file);