test: support server-side unit testing (#2485)
This commit is contained in:
@@ -1,8 +1,5 @@
|
||||
import { UserType } from '@server/constants/user';
|
||||
import dataSource, { getRepository } from '@server/datasource';
|
||||
import { User } from '@server/entity/User';
|
||||
import { seedTestDb } from '@server/utils/seedTestDb';
|
||||
import { copyFileSync } from 'fs';
|
||||
import gravatarUrl from 'gravatar-url';
|
||||
import path from 'path';
|
||||
|
||||
const prepareDb = async () => {
|
||||
@@ -12,61 +9,10 @@ const prepareDb = async () => {
|
||||
path.join(__dirname, '../../config/settings.json')
|
||||
);
|
||||
|
||||
// Connect to DB and seed test data
|
||||
const dbConnection = await dataSource.initialize();
|
||||
|
||||
if (process.env.PRESERVE_DB !== 'true') {
|
||||
await dbConnection.dropDatabase();
|
||||
}
|
||||
|
||||
// Run migrations in production
|
||||
if (process.env.WITH_MIGRATIONS === 'true') {
|
||||
await dbConnection.runMigrations();
|
||||
} else {
|
||||
await dbConnection.synchronize();
|
||||
}
|
||||
|
||||
const userRepository = getRepository(User);
|
||||
|
||||
const admin = await userRepository.findOne({
|
||||
select: { id: true, plexId: true },
|
||||
where: { id: 1 },
|
||||
await seedTestDb({
|
||||
preserveDb: process.env.PRESERVE_DB === 'true',
|
||||
withMigrations: process.env.WITH_MIGRATIONS === 'true',
|
||||
});
|
||||
|
||||
// Create the admin user
|
||||
const user =
|
||||
(await userRepository.findOne({
|
||||
where: { email: 'admin@seerr.dev' },
|
||||
})) ?? new User();
|
||||
user.plexId = admin?.plexId ?? 1;
|
||||
user.plexToken = '1234';
|
||||
user.plexUsername = 'admin';
|
||||
user.username = 'admin';
|
||||
user.email = 'admin@seerr.dev';
|
||||
user.userType = UserType.PLEX;
|
||||
await user.setPassword('test1234');
|
||||
user.permissions = 2;
|
||||
user.avatar = gravatarUrl('admin@seerr.dev', { default: 'mm', size: 200 });
|
||||
await userRepository.save(user);
|
||||
|
||||
// Create the other user
|
||||
const otherUser =
|
||||
(await userRepository.findOne({
|
||||
where: { email: 'friend@seerr.dev' },
|
||||
})) ?? new User();
|
||||
otherUser.plexId = admin?.plexId ?? 1;
|
||||
otherUser.plexToken = '1234';
|
||||
otherUser.plexUsername = 'friend';
|
||||
otherUser.username = 'friend';
|
||||
otherUser.email = 'friend@seerr.dev';
|
||||
otherUser.userType = UserType.PLEX;
|
||||
await otherUser.setPassword('test1234');
|
||||
otherUser.permissions = 32;
|
||||
otherUser.avatar = gravatarUrl('friend@seerr.dev', {
|
||||
default: 'mm',
|
||||
size: 200,
|
||||
});
|
||||
await userRepository.save(otherUser);
|
||||
};
|
||||
|
||||
prepareDb();
|
||||
|
||||
Reference in New Issue
Block a user