php-uptelligence/tests/Unit/AltumCodeVendorSeederTest.php
Snider a187114d27 feat(uptelligence): add AltumCode vendor seeder with 17 entries
Idempotent seeder using updateOrCreate for 4 licensed products
(66analytics, 66biolinks, 66pusher, 66socialproof) and 13 plugins.
All entries use placeholder version 0.0.0 pending sync from Task 4.

Also fixes Pest.php to use Tests\TestCase (loads Boot provider) so
database-dependent tests can run migrations via RefreshDatabase.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 08:47:07 +00:00

60 lines
1.7 KiB
PHP

<?php
declare(strict_types=1);
use Core\Mod\Uptelligence\Database\Seeders\AltumCodeVendorSeeder;
use Core\Mod\Uptelligence\Models\Vendor;
use Illuminate\Foundation\Testing\RefreshDatabase;
uses(RefreshDatabase::class);
it('seeds 4 altum products', function () {
$seeder = new AltumCodeVendorSeeder;
$seeder->run();
$products = Vendor::where('source_type', Vendor::SOURCE_LICENSED)
->where('plugin_platform', Vendor::PLATFORM_ALTUM)
->get();
expect($products)->toHaveCount(4)
->and($products->pluck('slug')->sort()->values()->all())->toBe([
'66analytics',
'66biolinks',
'66pusher',
'66socialproof',
]);
$products->each(function (Vendor $vendor) {
expect($vendor->vendor_name)->toBe('AltumCode')
->and($vendor->is_active)->toBeTrue()
->and($vendor->current_version)->toBe('0.0.0');
});
});
it('seeds 13 altum plugins', function () {
$seeder = new AltumCodeVendorSeeder;
$seeder->run();
$plugins = Vendor::where('source_type', Vendor::SOURCE_PLUGIN)
->where('plugin_platform', Vendor::PLATFORM_ALTUM)
->get();
expect($plugins)->toHaveCount(13);
$plugins->each(function (Vendor $vendor) {
expect($vendor->vendor_name)->toBe('AltumCode')
->and($vendor->is_active)->toBeTrue()
->and($vendor->current_version)->toBe('0.0.0')
->and($vendor->slug)->toStartWith('altum-plugin-');
});
});
it('is idempotent — running twice still yields 17 total', function () {
$seeder = new AltumCodeVendorSeeder;
$seeder->run();
expect(Vendor::count())->toBe(17);
$seeder->run();
expect(Vendor::count())->toBe(17);
});