outputDisk)->delete($this->outputPath); }); afterEach(function () { /** @var \Uwil\SitemapGenerator\Tests\TestCase $this */ Storage::disk($this->outputDisk)->delete($this->outputPath); }); it('displays the dry-run table without creating the sitemap file', function () { /** @var \Uwil\SitemapGenerator\Tests\TestCase $this */ // GIVEN Route::name('contact')->get('/{locale}/contact', fn () => 'contact'); config()->set(SitemapConfig::CONFIG_KEY . '.single_pages', ['contact']); // WHEN /** @var \Illuminate\Testing\PendingCommand $command */ $command = $this->artisan('uwil:sitemap:refresh --dry-run'); // THEN $command ->expectsOutput('Generating Sitemap..') ->assertSuccessful() ->run(); expect(Storage::disk($this->outputDisk)->exists($this->outputPath))->toBeFalse(); }); it('generates the sitemap xml file and serves it via the GET route', function () { /** @var \Uwil\SitemapGenerator\Tests\TestCase $this */ // GIVEN $url = 'sitemap.xml'; Route::name('contact')->get('/{locale}/contact', fn () => 'contact'); config()->set(SitemapConfig::CONFIG_KEY . '.single_pages', ['contact']); // WHEN /** @var \Illuminate\Testing\PendingCommand $command */ $command = $this->artisan('uwil:sitemap:refresh'); // THEN $command ->expectsOutput('Generating Sitemap..') ->expectsOutput('A new sitemap.xml was generated') ->assertSuccessful() ->run(); expect(Storage::disk($this->outputDisk)->exists($this->outputPath))->toBeTrue(); $content = Storage::disk($this->outputDisk)->get($this->outputPath); expect($content) ->toContain('toContain('/fr/contact') ->toContain('/en/contact'); $response = $this->get($url); $response->assertOk(); expect($response->streamedContent()) ->toContain('/fr/contact'); }); it('returns 404 when the sitemap has not been generated yet', function () { /** @var \Uwil\SitemapGenerator\Tests\TestCase $this */ // GIVEN $url = 'sitemap.xml'; // WHEN $result = $this->get($url); // THEN $result->assertNotFound(); }); });