Make projects depend on templates
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature\Database;
|
||||
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Tests\TestCase;
|
||||
|
||||
class ProjectTemplateBaselineMigrationTest extends TestCase
|
||||
{
|
||||
public function test_migration_backfills_hidden_base_templates_for_existing_projects(): void
|
||||
{
|
||||
Artisan::call('migrate:fresh', [
|
||||
'--path' => [
|
||||
'database/migrations/0001_01_01_000000_create_users_table.php',
|
||||
'database/migrations/0001_01_01_000001_create_cache_table.php',
|
||||
'database/migrations/0001_01_01_000002_create_jobs_table.php',
|
||||
'database/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.php',
|
||||
'database/migrations/2026_03_24_234007_create_projects_table.php',
|
||||
'database/migrations/2026_03_24_234734_create_teams_table.php',
|
||||
'database/migrations/2026_03_24_234735_create_team_user_table.php',
|
||||
'database/migrations/2026_03_25_002100_create_board_columns_table.php',
|
||||
'database/migrations/2026_03_25_003100_create_ticket_types_table.php',
|
||||
'database/migrations/2026_03_25_003101_create_ticket_priorities_table.php',
|
||||
'database/migrations/2026_03_25_003102_create_ticket_field_definitions_table.php',
|
||||
'database/migrations/2026_03_25_004098_create_ticket_statuses_table.php',
|
||||
'database/migrations/2026_03_25_004099_create_ticket_statuses_transitionstable.php',
|
||||
'database/migrations/2026_03_25_004100_create_tickets_table.php',
|
||||
'database/migrations/2026_03_25_065302_create_ticket_worklog_entries_table.php',
|
||||
'database/migrations/2026_03_25_070706_create_ticket_field_values_table.php',
|
||||
'database/migrations/2026_03_25_073715_create_ticket_links_table.php',
|
||||
'database/migrations/2026_03_25_073715_create_ticket_link_types_table.php',
|
||||
'database/migrations/2026_03_26_074522_create_user_git_connections_table.php',
|
||||
'database/migrations/2026_03_26_075849_create_repository_connections_table.php',
|
||||
'database/migrations/2026_04_12_120000_create_permission_assignments_table.php',
|
||||
'database/migrations/2026_04_20_174556_create_user_applications_table.php',
|
||||
'database/migrations/2026_04_20_194646_create_notification_actions_table.php',
|
||||
'database/migrations/2026_04_20_194646_create_notification_delivery_logs_table.php',
|
||||
'database/migrations/2026_04_24_194800_add_filters_to_notification_actions_table.php',
|
||||
'database/migrations/2026_04_24_203500_create_acceptance_criteria_table.php',
|
||||
'database/migrations/2026_05_19_230500_drop_acceptance_criteria_from_tickets_table.php',
|
||||
'database/migrations/2026_05_22_124700_add_must_change_password_on_next_login_to_users_table.php',
|
||||
'database/migrations/2026_05_23_101900_add_counterpart_label_to_ticket_link_types_table.php',
|
||||
'database/migrations/2026_05_25_011500_create_project_templates_table.php',
|
||||
],
|
||||
]);
|
||||
|
||||
DB::table('projects')->insert([
|
||||
'name' => 'Legacy Project',
|
||||
'key' => 'LGCY',
|
||||
'show_author' => 0,
|
||||
'show_story_points' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
]);
|
||||
|
||||
$projectId = (int) DB::table('projects')->where('key', 'LGCY')->value('id');
|
||||
|
||||
Artisan::call('migrate', [
|
||||
'--path' => 'database/migrations/2026_05_25_013000_project_templates_as_project_baselines.php',
|
||||
]);
|
||||
|
||||
$project = DB::table('projects')->where('id', $projectId)->first();
|
||||
$template = DB::table('project_templates')->where('id', $project->project_template_id)->first();
|
||||
|
||||
$this->assertNotNull($project->project_template_id);
|
||||
$this->assertNotNull($template);
|
||||
$this->assertSame($projectId, $template->project_id);
|
||||
$this->assertSame($projectId, $template->source_project_id);
|
||||
$this->assertSame(0, $template->is_published);
|
||||
$this->assertSame('lgcy-base-template', $template->slug);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user