makeDirectory('/images/generated'); }); it('generates 4-color 2-bit PNG with device model', function (): void { // Create a DeviceModel for 4-color, 2-bit PNG $deviceModel = DeviceModel::factory()->create([ 'width' => 800, 'height' => 480, 'colors' => 4, 'bit_depth' => 2, 'scale_factor' => 1.0, 'rotation' => 0, 'mime_type' => 'image/png', 'offset_x' => 0, 'offset_y' => 0, ]); // Create a device with the DeviceModel $device = Device::factory()->create([ 'device_model_id' => $deviceModel->id, ]); $markup = '
Test Content
'; $uuid = ImageGenerationService::generateImage($markup, $device->id); // Assert the device was updated with a new image UUID $device->refresh(); expect($device->current_screen_image)->toBe($uuid); // Assert PNG file was created Storage::disk('public')->assertExists("/images/generated/{$uuid}.png"); // Verify the image file has content and isn't blank $imagePath = Storage::disk('public')->path("/images/generated/{$uuid}.png"); $imageSize = filesize($imagePath); expect($imageSize)->toBeGreaterThan(200); // Should be at least 200 bytes for a 2-bit PNG // Verify it's a valid PNG file $imageInfo = getimagesize($imagePath); expect($imageInfo[0])->toBe(800); // Width expect($imageInfo[1])->toBe(480); // Height expect($imageInfo[2])->toBe(IMAGETYPE_PNG); // PNG type })->skipOnCI();