diff options
| author | Sam Light <sam@lightscale.co.uk> | 2025-03-31 00:50:18 +0100 | 
|---|---|---|
| committer | Sam Light <samlight1994@gmail.com> | 2025-03-31 00:50:18 +0100 | 
| commit | 3d91db66d05f2f226d3d64d1479fc6a5513a0793 (patch) | |
| tree | c8a2068840dc5a1be5af7c66cd0c095ed7e96de0 /tests | |
| parent | a6fcc388252f661945039458e29d07c23ff32027 (diff) | |
Assets testing
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/Feature/AssetsTest.php | 78 | 
1 files changed, 78 insertions, 0 deletions
| diff --git a/tests/Feature/AssetsTest.php b/tests/Feature/AssetsTest.php new file mode 100644 index 0000000..887142c --- /dev/null +++ b/tests/Feature/AssetsTest.php @@ -0,0 +1,78 @@ +<?php + +use Lightscale\LaralightAssets\Assets; +use Lightscale\LaralightAssets\Manifest; + +it('instantiates', function() { +    new Assets(); +})->throwsNoExceptions(); + +it('instantiates from container', function() { +    app(Assets::class); +})->throwsNoExceptions(); + +it('is singleton', function() { +    expect(app(Assets::class))->toBe(app(Assets::class)); +}); + +it('adds manifests', function() { +    app(Assets::class)->addManifest( +        'main', +        new Manifest( +            public_path('dist/manifest.json'), +            '/dist', +        ), +        isDefault: true, +    ); +})->throwsNoExceptions(); + +it('registers manifests', function() { +    app(Assets::class)->registerManifest( +        'main', public_path('dist/manifest.json'), '/dist', isDefault: true, +    ); +})->throwsNoExceptions(); + +it('gets manifests', function() { +    $assets = app(Assets::class); +    $assets->registerManifest( +        'main', public_path('dist/manifest.json'), '/dist', isDefault: true, +    ); + +    expect($assets->getManifests()) +        ->toHaveLength(1) +        ->toContainOnlyInstancesOf(Manifest::class); +}); + +it('gets manifest', function() { +    $assets = app(Assets::class); +    $manifest = new Manifest( +        public_path('dist/manifest.json'), +        '/dist', +    ); +    $name = 'main'; +    $assets->addManifest($name, $manifest, true); + +    expect($assets->getManifest($name))->toBe($manifest); +}); + +it('gets default manifest', function() { +    $assets = app(Assets::class); +    $manifest = new Manifest( +        public_path('dist/manifest.json'), +        '/dist', +    ); +    $name = 'main'; +    $assets->addManifest($name, $manifest, true); + +    expect($assets->getDefaultManifest())->toBe($manifest); +}); + +it('throws exception missing manifest', function() { +    $assets = app(Assets::class); +    $assets->getManifest('main'); +})->throws(Exception::class); + +it('throws exception without default', function() { +    $assets = app(Assets::class); +    $assets->getDefaultManifest(); +})->throws(Error::class); | 
