This repository has been archived on 2022-08-14. You can view files and clone it, but cannot push or open issues or pull requests.
outline/server/test/support.js
2018-07-07 18:19:13 -05:00

88 lines
2.1 KiB
JavaScript

// @flow
import { User, Document, Collection, Team } from '../models';
import { sequelize } from '../sequelize';
export function flushdb() {
const sql = sequelize.getQueryInterface();
const tables = Object.keys(sequelize.models).map(model => {
const n = sequelize.models[model].getTableName();
return sql.quoteTable(typeof n === 'string' ? n : n.tableName);
});
const query = `TRUNCATE ${tables.join(', ')} CASCADE`;
return sequelize.query(query);
}
const seed = async () => {
const team = await Team.create({
id: '86fde1d4-0050-428f-9f0b-0bf77f8bdf61',
name: 'Team',
slackId: 'T2399UF2P',
slackData: {
id: 'T2399UF2P',
},
});
const user = await User.create({
id: '46fde1d4-0050-428f-9f0b-0bf77f4bdf61',
email: 'user1@example.com',
username: 'user1',
name: 'User 1',
teamId: team.id,
service: 'slack',
serviceId: 'U2399UF2P',
slackData: {
id: 'U2399UF2P',
image_192: 'http://example.com/avatar.png',
},
createdAt: new Date('2018-01-01T00:00:00.000Z'),
});
const admin = await User.create({
id: 'fa952cff-fa64-4d42-a6ea-6955c9689046',
email: 'admin@example.com',
username: 'admin',
name: 'Admin User',
teamId: team.id,
isAdmin: true,
service: 'slack',
serviceId: 'U2399UF1P',
slackData: {
id: 'U2399UF1P',
image_192: 'http://example.com/avatar.png',
},
createdAt: new Date('2018-01-01T00:00:00.000Z'),
});
const collection = await Collection.create({
id: '26fde1d4-0050-428f-9f0b-0bf77f8bdf62',
name: 'Collection',
urlId: 'collection',
teamId: team.id,
creatorId: user.id,
type: 'atlas',
});
const document = await Document.create({
parentDocumentId: null,
atlasId: collection.id,
teamId: team.id,
userId: collection.creatorId,
lastModifiedById: collection.creatorId,
createdById: collection.creatorId,
publishedAt: new Date(),
title: 'Second document',
text: '# Much guidance',
});
return {
user,
admin,
collection: document.collection,
document,
team,
};
};
export { seed, sequelize };