696 lines
16 KiB
JavaScript
696 lines
16 KiB
JavaScript
import fs from 'fs';
|
|
import bcrypt from 'bcrypt';
|
|
|
|
export async function up(queryInterface) {
|
|
const hashedPassword = await bcrypt.hash('password', 10);
|
|
|
|
// Add projects table records
|
|
await queryInterface.bulkInsert('users', [
|
|
{
|
|
email: 'admin@example.com',
|
|
password: hashedPassword,
|
|
username: 'Admin',
|
|
role: 0,
|
|
avatar_path: null,
|
|
created_at: new Date(),
|
|
updated_at: new Date(),
|
|
},
|
|
{
|
|
email: 'samuel@example.com',
|
|
password: hashedPassword,
|
|
username: 'Samuel Golden',
|
|
role: 1,
|
|
avatar_path: null,
|
|
created_at: new Date(),
|
|
updated_at: new Date(),
|
|
},
|
|
{
|
|
email: 'trey@example.com',
|
|
password: hashedPassword,
|
|
username: 'Trey Fisher',
|
|
role: 1,
|
|
avatar_path: null,
|
|
created_at: new Date(),
|
|
updated_at: new Date(),
|
|
},
|
|
{
|
|
email: 'zoe@example.com',
|
|
password: hashedPassword,
|
|
username: 'Zoe Woodward',
|
|
role: 1,
|
|
avatar_path: null,
|
|
created_at: new Date(),
|
|
updated_at: new Date(),
|
|
},
|
|
{
|
|
email: 'roger@example.com',
|
|
password: hashedPassword,
|
|
username: 'Roger Hess',
|
|
role: 1,
|
|
avatar_path: null,
|
|
created_at: new Date(),
|
|
updated_at: new Date(),
|
|
},
|
|
{
|
|
email: 'jasmine@example.com',
|
|
password: hashedPassword,
|
|
username: 'Jasmine Moody',
|
|
role: 1,
|
|
avatar_path: null,
|
|
created_at: new Date(),
|
|
updated_at: new Date(),
|
|
},
|
|
{
|
|
email: 'tatsuya@example.com',
|
|
password: hashedPassword,
|
|
username: 'Suzuki Tatsuya',
|
|
role: 1,
|
|
avatar_path: null,
|
|
created_at: new Date(),
|
|
updated_at: new Date(),
|
|
},
|
|
{
|
|
email: 'eri@example.com',
|
|
password: hashedPassword,
|
|
username: 'Sato Eri',
|
|
role: 1,
|
|
avatar_path: null,
|
|
created_at: new Date(),
|
|
updated_at: new Date(),
|
|
},
|
|
]);
|
|
|
|
// Add projects table records
|
|
await queryInterface.bulkInsert('projects', [
|
|
{
|
|
name: 'UnitTCMS Test',
|
|
detail: "Test Plat's Manual test",
|
|
userId: 1,
|
|
isPublic: true,
|
|
createdAt: new Date(2024, 5, 4),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
name: 'Iron Muscle App',
|
|
detail: 'Pre-release overall evaluation',
|
|
userId: 1,
|
|
isPublic: true,
|
|
createdAt: new Date(2024, 6, 10),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
name: 'MS200',
|
|
detail: '',
|
|
userId: 1,
|
|
isPublic: true,
|
|
createdAt: new Date(2024, 6, 24),
|
|
updatedAt: new Date(),
|
|
},
|
|
]);
|
|
|
|
// Add folders table records
|
|
await queryInterface.bulkInsert('folders', [
|
|
{
|
|
name: 'Account',
|
|
detail: '',
|
|
projectId: 1,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
name: 'Contact',
|
|
detail: '',
|
|
projectId: 1,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
name: 'Account',
|
|
detail: '',
|
|
projectId: 2,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
name: 'Tranning history',
|
|
detail: '',
|
|
projectId: 2,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
name: 'Timeline',
|
|
detail: '',
|
|
projectId: 2,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
name: 'Chart',
|
|
detail: '',
|
|
projectId: 1,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
name: 'Simulate',
|
|
detail: '',
|
|
projectId: 1,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
]);
|
|
|
|
// Add runs table records
|
|
await queryInterface.bulkInsert('runs', [
|
|
{
|
|
name: 'First Test Run',
|
|
projectId: 1,
|
|
configurations: 1,
|
|
description: '5/14 - 5/31',
|
|
state: 4,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
name: 'evaluation 1st',
|
|
projectId: 2,
|
|
configurations: 1,
|
|
description: '5/14 - 5/31',
|
|
state: 4,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
name: 'evaluation 2nd',
|
|
projectId: 2,
|
|
configurations: 1,
|
|
description: '6/1 - 6/12',
|
|
state: 1,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
]);
|
|
|
|
// Add cases table records
|
|
await queryInterface.bulkInsert('cases', [
|
|
{
|
|
title: 'Signup',
|
|
state: 1,
|
|
priority: 1,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: 'User can signup from signup form.',
|
|
template: 1,
|
|
preConditions: 'Not signed in',
|
|
expectedResults: '',
|
|
folderId: 1,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Signin',
|
|
state: 1,
|
|
priority: 1,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: 'User can signin from signin form.',
|
|
template: 1,
|
|
preConditions: 'Not signed in',
|
|
expectedResults: '',
|
|
folderId: 1,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Contact',
|
|
state: 1,
|
|
priority: 1,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: "User can send inquiry from 'contact us' form.",
|
|
template: 0,
|
|
preConditions: '',
|
|
expectedResults: '',
|
|
folderId: 2,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Register account with email address',
|
|
state: 1,
|
|
priority: 2,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: 'Enter email addres and password in the form and click the Sign Up button.',
|
|
template: 0,
|
|
preConditions: '- You are not signed in\n- You have no account.',
|
|
expectedResults: 'You can sign up and you will be automatically redirected to your account page.',
|
|
folderId: 3,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Sign in with email',
|
|
state: 1,
|
|
priority: 2,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: 'nter email addres and password in the form and click the Sign In button.',
|
|
template: 0,
|
|
preConditions: 'You are not signed in',
|
|
expectedResults: 'You can sign in and you will be automatically redirected to your account page.',
|
|
folderId: 3,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Social Account Sign In',
|
|
state: 1,
|
|
priority: 1,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: 'You can sign in to the app with your Google account.',
|
|
template: 0,
|
|
preConditions: 'You are not signed in',
|
|
expectedResults: 'You can sign in and you will be automatically redirected to your account page.',
|
|
folderId: 3,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Edit Account',
|
|
state: 1,
|
|
priority: 3,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: 'You can update user name and avatar',
|
|
template: 0,
|
|
preConditions: 'Prepare sample avatar image file(.png, .svg, .jpg)',
|
|
expectedResults: 'You can resister avatar image',
|
|
folderId: 3,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'View Account',
|
|
state: 1,
|
|
priority: 0,
|
|
type: 1,
|
|
automationStatus: 1,
|
|
description: 'You cannot view not your account info',
|
|
template: 1,
|
|
preConditions: 'nothing',
|
|
expectedResults: '',
|
|
folderId: 3,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Muscle memory (Selection of muscle train part)',
|
|
state: 1,
|
|
priority: 2,
|
|
type: 1,
|
|
automationStatus: 1,
|
|
description: 'Selection of muscle train part',
|
|
template: 1,
|
|
preConditions: 'nothing',
|
|
expectedResults: 'Able to choose which parts of your body to train',
|
|
folderId: 4,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Muscle Memory (training sessions selection)',
|
|
state: 1,
|
|
priority: 2,
|
|
type: 1,
|
|
automationStatus: 1,
|
|
description: 'sessions selection',
|
|
template: 1,
|
|
preConditions: 'nothing',
|
|
expectedResults: 'Able to select the number of muscle training sessions',
|
|
folderId: 4,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Muscle Memory(closing dialog)',
|
|
state: 1,
|
|
priority: 3,
|
|
type: 3,
|
|
automationStatus: 1,
|
|
description: 'dialog functional check',
|
|
template: 1,
|
|
preConditions: 'open the dialog',
|
|
expectedResults: 'able to close the dialog by clicking "x" button',
|
|
folderId: 4,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Muscle Memory(selectio dialog)',
|
|
state: 1,
|
|
priority: 3,
|
|
type: 3,
|
|
automationStatus: 1,
|
|
description: 'responsibility of selection dialog',
|
|
template: 1,
|
|
preConditions: 'access the app by mobile device',
|
|
expectedResults: 'dialog will be displayed properly',
|
|
folderId: 4,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Chart display',
|
|
state: 1,
|
|
priority: 1,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: '',
|
|
template: 0,
|
|
preConditions: '',
|
|
expectedResults: '',
|
|
folderId: 6,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Chart update',
|
|
state: 1,
|
|
priority: 1,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: '',
|
|
template: 0,
|
|
preConditions: '',
|
|
expectedResults: '',
|
|
folderId: 6,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Chart palette color change',
|
|
state: 1,
|
|
priority: 1,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: '',
|
|
template: 0,
|
|
preConditions: '',
|
|
expectedResults: '',
|
|
folderId: 6,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Simlation exec',
|
|
state: 1,
|
|
priority: 1,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: '',
|
|
template: 0,
|
|
preConditions: '',
|
|
expectedResults: '',
|
|
folderId: 7,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Simlation update',
|
|
state: 1,
|
|
priority: 1,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: '',
|
|
template: 0,
|
|
preConditions: '',
|
|
expectedResults: '',
|
|
folderId: 7,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Simlation result palette color',
|
|
state: 1,
|
|
priority: 1,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: '',
|
|
template: 0,
|
|
preConditions: '',
|
|
expectedResults: '',
|
|
folderId: 7,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'Simlation button disable condition',
|
|
state: 1,
|
|
priority: 1,
|
|
type: 4,
|
|
automationStatus: 1,
|
|
description: '',
|
|
template: 0,
|
|
preConditions: '',
|
|
expectedResults: '',
|
|
folderId: 7,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
]);
|
|
|
|
// Add steps table records
|
|
await queryInterface.bulkInsert('steps', [
|
|
{
|
|
step: 'Check accout status',
|
|
result: 'Never have account',
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
step: "Enter signup form and then, click 'signup' button.",
|
|
result: 'Automatically redirect to the account page',
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
step: 'Check signin status',
|
|
result: 'Not signed in',
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
step: "Enter signin form and then, click 'signin button.'",
|
|
result: 'Automatically redirect to the account page',
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
step: 'Open browser with secret mode',
|
|
result: 'Open Local Storage in Developer Tools and confirm that there is no session.',
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
step: "move to 'account/userinfo?userid=xxx' page",
|
|
result: 'Redirected to an error page with a 403 error.',
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
]);
|
|
|
|
// Add case-step join table
|
|
await queryInterface.bulkInsert('caseSteps', [
|
|
{
|
|
caseId: 1,
|
|
stepId: 1,
|
|
stepNo: 1,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
caseId: 1,
|
|
stepId: 2,
|
|
stepNo: 2,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
caseId: 2,
|
|
stepId: 3,
|
|
stepNo: 1,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
caseId: 2,
|
|
stepId: 4,
|
|
stepNo: 2,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
caseId: 8,
|
|
stepId: 5,
|
|
stepNo: 1,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
caseId: 8,
|
|
stepId: 6,
|
|
stepNo: 2,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
]);
|
|
|
|
await queryInterface.bulkInsert('attachments', [
|
|
{
|
|
title: 'Selenium logo',
|
|
detail: '',
|
|
filename: '861px-Selenium_Logo.png',
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
title: 'vitest logo',
|
|
detail: '',
|
|
filename: 'logo-shadow.svg',
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
]);
|
|
|
|
// copy sample files to uploads folder
|
|
const sampleFolderPath = 'public/sample';
|
|
const uploadsFolderPath = 'public/uploads';
|
|
const SeleniumLogoFileName = '861px-Selenium_Logo.png';
|
|
const vitestLogoFileName = 'logo-shadow.svg';
|
|
if (!fs.existsSync(uploadsFolderPath)) {
|
|
fs.mkdirSync(uploadsFolderPath, { recursive: true });
|
|
}
|
|
fs.copyFile(`${sampleFolderPath}/${SeleniumLogoFileName}`, `${uploadsFolderPath}/${SeleniumLogoFileName}`, (err) => {
|
|
if (err) {
|
|
console.log(err);
|
|
}
|
|
});
|
|
fs.copyFile(`${sampleFolderPath}/${vitestLogoFileName}`, `${uploadsFolderPath}/${vitestLogoFileName}`, (err) => {
|
|
if (err) {
|
|
console.log(err);
|
|
}
|
|
});
|
|
|
|
await queryInterface.bulkInsert('caseAttachments', [
|
|
{
|
|
caseId: 1,
|
|
attachmentId: 1,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
caseId: 1,
|
|
attachmentId: 2,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
]);
|
|
|
|
await queryInterface.bulkInsert('runCases', [
|
|
{
|
|
runId: 1,
|
|
caseId: 1,
|
|
status: 1,
|
|
createdAt: new Date(2024, 5, 15),
|
|
updatedAt: new Date(2024, 5, 15),
|
|
},
|
|
{
|
|
runId: 1,
|
|
caseId: 2,
|
|
status: 1,
|
|
createdAt: new Date(2024, 5, 15),
|
|
updatedAt: new Date(2024, 5, 15),
|
|
},
|
|
{
|
|
runId: 1,
|
|
caseId: 13,
|
|
status: 1,
|
|
createdAt: new Date(2024, 5, 18),
|
|
updatedAt: new Date(2024, 5, 18),
|
|
},
|
|
{
|
|
runId: 1,
|
|
caseId: 14,
|
|
status: 1,
|
|
createdAt: new Date(2024, 5, 18),
|
|
updatedAt: new Date(2024, 5, 18),
|
|
},
|
|
{
|
|
runId: 1,
|
|
caseId: 15,
|
|
status: 1,
|
|
createdAt: new Date(2024, 5, 18),
|
|
updatedAt: new Date(2024, 5, 18),
|
|
},
|
|
{
|
|
runId: 1,
|
|
caseId: 16,
|
|
status: 0,
|
|
createdAt: new Date(2024, 5, 15),
|
|
updatedAt: new Date(2024, 5, 15),
|
|
},
|
|
{
|
|
runId: 1,
|
|
caseId: 17,
|
|
status: 0,
|
|
createdAt: new Date(2024, 5, 16),
|
|
updatedAt: new Date(2024, 5, 16),
|
|
},
|
|
{
|
|
runId: 1,
|
|
caseId: 18,
|
|
status: 2,
|
|
createdAt: new Date(2024, 5, 16),
|
|
updatedAt: new Date(2024, 5, 16),
|
|
},
|
|
{
|
|
runId: 1,
|
|
caseId: 19,
|
|
status: 3,
|
|
createdAt: new Date(2024, 5, 17),
|
|
updatedAt: new Date(2024, 5, 17),
|
|
},
|
|
]);
|
|
|
|
await queryInterface.bulkInsert('members', [
|
|
{
|
|
userId: 2,
|
|
projectId: 1,
|
|
role: 0,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
userId: 7,
|
|
projectId: 1,
|
|
role: 2,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
{
|
|
userId: 8,
|
|
projectId: 1,
|
|
role: 1,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
},
|
|
]);
|
|
}
|
|
|
|
export async function down() {
|
|
// do nothing
|
|
}
|