'use strict'; const path = require('path'); const fs = require('fs'); module.exports = { up: async (queryInterface, Sequelize) => { // Add projects table records await queryInterface.bulkInsert('Projects', [ { name: 'TestPlat Test', detail: "Test Plat's Manual test", createdAt: new Date(), updatedAt: new Date(), }, { name: 'Iron Muscle App(筋トレアプリ)', detail: 'リリース前総合評価', createdAt: new Date(), 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: 'アカウント', detail: '', projectId: 2, createdAt: new Date(), updatedAt: new Date(), }, { name: 'トレーニング記録', detail: '', projectId: 2, createdAt: new Date(), updatedAt: new Date(), }, { name: 'タイムライン', detail: '', projectId: 2, 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: '総合評価第一回', projectId: 2, configurations: 1, description: '5/14 - 5/31', state: 4, createdAt: new Date(), updatedAt: new Date(), }, { name: '総合評価第二回', 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: 'メールアドレスでのアカウント登録', state: 1, priority: 2, type: 4, automationStatus: 1, description: 'メールアドレス、パスワードをフォームに入力してサインアップボタンを押す', template: 0, preConditions: '未サインイン状態であること。アカウントがないこと。', expectedResults: 'サインアップができ、自動でアカウントページに遷移する', folderId: 3, createdAt: new Date(), updatedAt: new Date(), }, { title: 'メールアドレスでのサインイン', state: 1, priority: 2, type: 4, automationStatus: 1, description: 'メールアドレス、パスワードをフォームに入力してサインインボタンを押す', template: 0, preConditions: '未サインイン状態であること', expectedResults: 'サインインができ、自動でアカウントページに遷移する', folderId: 3, createdAt: new Date(), updatedAt: new Date(), }, { title: 'ソーシャルアカウントサインイン', state: 1, priority: 1, type: 4, automationStatus: 1, description: 'Googleアカウントで筋トレアプリにサインインできること', template: 0, preConditions: '未サインイン状態であること', expectedResults: 'サインインでき、自動でアカウントページに遷移する', folderId: 3, createdAt: new Date(), updatedAt: new Date(), }, { title: 'アカウント情報編集', state: 1, priority: 3, type: 4, automationStatus: 1, description: 'ユーザー名、アバター画像を変更できること', template: 0, preConditions: 'アバター画像(.png, .svg, .jpg)を用意する', expectedResults: 'アバター画像を登録できること', folderId: 3, createdAt: new Date(), updatedAt: new Date(), }, { title: 'アカウント閲覧', state: 1, priority: 0, type: 1, automationStatus: 1, description: 'ほかの人のアカウント情報は見れないこと', template: 1, preConditions: '特になし', expectedResults: '', folderId: 3, createdAt: new Date(), updatedAt: new Date(), }, { title: '筋トレ記録(部位選択)', state: 1, priority: 2, type: 1, automationStatus: 1, description: '部位選択', template: 1, preConditions: '特になし', expectedResults: '筋トレ部位を選択できること', folderId: 4, createdAt: new Date(), updatedAt: new Date(), }, { title: '筋トレ記録(回数選択)', state: 1, priority: 2, type: 1, automationStatus: 1, description: '回数選択', template: 1, preConditions: '特になし', expectedResults: '筋トレ回数を選択できること', folderId: 4, createdAt: new Date(), updatedAt: new Date(), }, { title: '筋トレ記録 ダイアログのクローズ', state: 1, priority: 3, type: 3, automationStatus: 1, description: '選択ダイアログの機能性確認', template: 1, preConditions: 'ダイアログを開く', expectedResults: 'ダイアログの「×」ボタンを押して閉じれること', folderId: 4, createdAt: new Date(), updatedAt: new Date(), }, { title: '筋トレ記録 選択ダイアログ', state: 1, priority: 3, type: 3, automationStatus: 1, description: '選択ダイアログのレスポンシブ確認', template: 1, preConditions: 'スマホでウェブサイトにアクセスする', expectedResults: 'ダイアログの表示がおかしくないこと', folderId: 4, 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: 'ブラウザのシークレットモードに入る', result: '開発者モードのLocal Storageを開き、sessionがないことを確認する。', createdAt: new Date(), updatedAt: new Date(), }, { step: "'account/userinfo?userid=xxx'に遷移する", result: 'エラーページにリダイレクトされ、403エラーなこと。', 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: '', path: 'http://localhost:3001/uploads/861px-Selenium_Logo.png', createdAt: new Date(), updatedAt: new Date(), }, { title: 'vitest logo', detail: '', path: 'http://localhost:3001/uploads/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(), updatedAt: new Date(), }, { runId: 1, caseId: 2, status: 1, createdAt: new Date(), updatedAt: new Date(), }, ]); }, down: async (queryInterface, Sequelize) => { // do nothingg }, };