create(); WebsiteType::query()->create([ 'codigo' => 'shopit', 'nombre' => 'ShopIt', 'dominio' => 'admin.shopit.test', 'scanner_domain' => 'scanner.shopit.test', 'primary_color' => '#112233', 'secondary_color' => '#445566', 'danger_color' => '#aa0000', 'success_color' => '#00aa00', 'warning_color' => '#ffaa00', 'body_color' => '#666666', 'darker_body_color' => '#333333', 'surface_color' => '#ffffff', 'background_color' => '#f8f8f8', 'border_color' => '#eaeaea', 'login_header_footer_color' => '#313131', 'site_logo' => $siteLogo->id, ]); $this->getJson('/api/v1/scanner/bootstrap/SCANNER.SHOPIT.TEST') ->assertOk() ->assertJsonPath('data.website_type_code', 'shopit') ->assertJsonPath('data.primary_color', '#112233') ->assertJsonPath('data.site_logo', $siteLogo->getTemporaryUrl(1440)) ->assertJsonPath('data.footer_logo', null) ->assertJsonMissingPath('data.codigo') ->assertJsonMissingPath('data.nombre') ->assertJsonMissingPath('data.dominio') ->assertJsonMissingPath('data.scanner_domain'); } public function test_it_does_not_match_the_admin_app_domain(): void { WebsiteType::query()->create([ 'codigo' => 'shopit', 'nombre' => 'ShopIt', 'dominio' => 'admin.shopit.test', 'scanner_domain' => 'scanner.shopit.test', ]); $this->getJson('/api/v1/scanner/bootstrap/admin.shopit.test') ->assertNotFound(); } public function test_it_returns_not_found_for_an_unknown_scanner_domain(): void { $this->getJson('/api/v1/scanner/bootstrap/unknown.test') ->assertNotFound(); } public function test_it_rejects_an_invalid_domain(): void { $invalidDomain = str_repeat('a', 256); $this->getJson("/api/v1/scanner/bootstrap/{$invalidDomain}") ->assertUnprocessable() ->assertJsonValidationErrors(['dominio']); } }