| 
17 | 17 |  *  | 
18 | 18 |  * @see https://github.com/guanguans/music-dl  | 
19 | 19 |  */  | 
 | 20 | + | 
 | 21 | +use App\Music;  | 
 | 22 | +use function App\Support\classes;  | 
 | 23 | +use function App\Support\make;  | 
 | 24 | + | 
 | 25 | +it('can get classes', function (): void {  | 
 | 26 | +    expect(  | 
 | 27 | +        classes(fn (string $class): bool => str($class)->startsWith('Rectors'))  | 
 | 28 | +    )->toBeCollection();  | 
 | 29 | +})->group(__DIR__, __FILE__);  | 
 | 30 | + | 
 | 31 | +it('will throw `InvalidArgumentException` when abstract is empty array', function (): void {  | 
 | 32 | +    make([]);  | 
 | 33 | +})->group(__DIR__, __FILE__)->throws(InvalidArgumentException::class);  | 
 | 34 | + | 
 | 35 | +it('can make music', function (array|string $abstract): void {  | 
 | 36 | +    expect(make($abstract))->toBeInstanceOf(Music::class);  | 
 | 37 | +})->group(__DIR__, __FILE__)->with([  | 
 | 38 | +    ['abstract' => Music::class],  | 
 | 39 | +    ['abstract' => ['__abstract' => Music::class, 'driver' => null, 'minCallMicroseconds' => 1000]],  | 
 | 40 | +    ['abstract' => ['__class' => Music::class, 'driver' => null, 'minCallMicroseconds' => 1000]],  | 
 | 41 | +    ['abstract' => ['__name' => Music::class, 'driver' => null, 'minCallMicroseconds' => 1000]],  | 
 | 42 | +    ['abstract' => ['_abstract' => Music::class, 'driver' => null, 'minCallMicroseconds' => 1000]],  | 
 | 43 | +    ['abstract' => ['_class' => Music::class, 'driver' => null, 'minCallMicroseconds' => 1000]],  | 
 | 44 | +    ['abstract' => ['_name' => Music::class, 'driver' => null, 'minCallMicroseconds' => 1000]],  | 
 | 45 | +    ['abstract' => ['abstract' => Music::class, 'driver' => null, 'minCallMicroseconds' => 1000]],  | 
 | 46 | +    ['abstract' => ['class' => Music::class, 'driver' => null, 'minCallMicroseconds' => 1000]],  | 
 | 47 | +    ['abstract' => ['name' => Music::class, 'driver' => null, 'minCallMicroseconds' => 1000]],  | 
 | 48 | +]);  | 
0 commit comments