diff --git a/docs/snippets/advanced-directive-array.xml b/docs/snippets/advanced-directive-array.xml
index 87fed3b..144dc4c 100644
--- a/docs/snippets/advanced-directive-array.xml
+++ b/docs/snippets/advanced-directive-array.xml
@@ -2,18 +2,18 @@
- Dr. Mozelle Hand V
- https://via.placeholder.com/640x480.png/00ddee?text=iste
- https://via.placeholder.com/640x480.png/00aaaa?text=dolorem
- https://via.placeholder.com/640x480.png/002288?text=quasi
- https://via.placeholder.com/640x480.png/00aa66?text=explicabo
+ Prof. Maximo Grady PhD
+ https://via.placeholder.com/640x480.png/00dd77?text=consectetur
+ https://via.placeholder.com/640x480.png/00eeff?text=aliquam
+ https://via.placeholder.com/640x480.png/007799?text=minima
+ https://via.placeholder.com/640x480.png/00aa55?text=commodi
- Lori Gislason
- https://via.placeholder.com/640x480.png/001144?text=nostrum
- https://via.placeholder.com/640x480.png/002200?text=numquam
- https://via.placeholder.com/640x480.png/005544?text=consequatur
- https://via.placeholder.com/640x480.png/0011dd?text=maiores
+ Columbus Lesch
+ https://via.placeholder.com/640x480.png/005555?text=cupiditate
+ https://via.placeholder.com/640x480.png/00bb11?text=voluptatem
+ https://via.placeholder.com/640x480.png/0033aa?text=et
+ https://via.placeholder.com/640x480.png/00bb66?text=et
diff --git a/docs/snippets/advanced-directive-attributes.xml b/docs/snippets/advanced-directive-attributes.xml
index ff4fc6c..ae4410d 100644
--- a/docs/snippets/advanced-directive-attributes.xml
+++ b/docs/snippets/advanced-directive-attributes.xml
@@ -1,16 +1,16 @@
-
+
https://example.com
- Doyle Donnelly
-
+ Mr. Jameson King I
+
- Sally Pagac Sr.
-
+ Gino Gutkowski
+
diff --git a/docs/snippets/advanced-directive-cdata.xml b/docs/snippets/advanced-directive-cdata.xml
index edf02ce..f5292d4 100644
--- a/docs/snippets/advanced-directive-cdata.xml
+++ b/docs/snippets/advanced-directive-cdata.xml
@@ -2,12 +2,12 @@
- Sallie Price]]>
- ssporer@example.net
+ Jose Lind]]>
+ hegmann.gayle@example.com
- Dr. Nedra Weimann]]>
- beau.feest@example.net
+ Damion Will]]>
+ florida48@example.net
diff --git a/docs/snippets/advanced-directive-mixed.xml b/docs/snippets/advanced-directive-mixed.xml
index 7b97f98..04730bc 100644
--- a/docs/snippets/advanced-directive-mixed.xml
+++ b/docs/snippets/advanced-directive-mixed.xml
@@ -2,17 +2,17 @@
- Bradley Krajcik
+ Merl Fay
Foo
- alexander73@example.net
+ estella13@example.net
- Jamil Hilpert PhD
+ Brennan Kunze PhD
Foo
- vwalsh@example.net
+ halvorson.oren@example.org
diff --git a/docs/snippets/advanced-directive-value.xml b/docs/snippets/advanced-directive-value.xml
index eec4b5d..c819ae9 100644
--- a/docs/snippets/advanced-directive-value.xml
+++ b/docs/snippets/advanced-directive-value.xml
@@ -2,12 +2,12 @@
- Mr. Cyril Douglas
- grant.kassulke@example.com
+ Mr. Clemens Rosenbaum
+ zieme.peggie@example.com
- Prof. Camille Veum DVM
- hfranecki@example.com
+ Tamara Bode Sr.
+ franecki.macy@example.net
diff --git a/docs/snippets/advanced-element-attribute.xml b/docs/snippets/advanced-element-attribute.xml
index e1c5321..67e366a 100644
--- a/docs/snippets/advanced-element-attribute.xml
+++ b/docs/snippets/advanced-element-attribute.xml
@@ -1,13 +1,13 @@
-
+
1
- Efren Prosacco
+ Walton Schinner
-
+
2
- Elwyn Kuphal DDS
+ Lance Hagenes
diff --git a/docs/snippets/advanced-element-header-footer.xml b/docs/snippets/advanced-element-header-footer.xml
index 50010f8..3f0ae51 100644
--- a/docs/snippets/advanced-element-header-footer.xml
+++ b/docs/snippets/advanced-element-header-footer.xml
@@ -3,11 +3,11 @@
1
- Arnaldo Mohr
+ Dr. Bryce Schmitt Jr.
2
- Dillan Beahan
+ Elfrieda Rippin PhD
diff --git a/docs/snippets/advanced-element-info-before-false.xml b/docs/snippets/advanced-element-info-before-false.xml
index 1ce5b52..170fc64 100644
--- a/docs/snippets/advanced-element-info-before-false.xml
+++ b/docs/snippets/advanced-element-info-before-false.xml
@@ -6,11 +6,11 @@
1
- Hilton Rath
+ Minnie Hoppe DDS
2
- Prof. Juanita Oberbrunner
+ Monica Jakubowski DDS
diff --git a/docs/snippets/advanced-element-info.xml b/docs/snippets/advanced-element-info.xml
index 091c75b..2646393 100644
--- a/docs/snippets/advanced-element-info.xml
+++ b/docs/snippets/advanced-element-info.xml
@@ -6,11 +6,11 @@
1
- Sigurd Mueller
+ Alexandrea Jacobson
2
- Kiera Hansen
+ Skye Stehr
diff --git a/docs/snippets/advanced-element-root.xml b/docs/snippets/advanced-element-root.xml
index 15edaaf..98dc475 100644
--- a/docs/snippets/advanced-element-root.xml
+++ b/docs/snippets/advanced-element-root.xml
@@ -3,11 +3,11 @@
1
- Darby Davis MD
+ Twila Bartell
2
- Dr. Mattie Rippin
+ Aurore Abbott
diff --git a/docs/snippets/receipt-instagram-feed.xml b/docs/snippets/receipt-instagram-feed.xml
index 680585c..e2ac230 100644
--- a/docs/snippets/receipt-instagram-feed.xml
+++ b/docs/snippets/receipt-instagram-feed.xml
@@ -8,7 +8,7 @@
1
- https://example.com/products/ratione-minima-officia-adipisci-ratione-consectetur
+ https://example.com/products/voluptas-quaerat-voluptatem-est-omnis
https://via.placeholder.com/640x480.png/008877?text=repudiandae
https://via.placeholder.com/640x480.png/008877?text=repudiandae
The Best
@@ -31,7 +31,7 @@
2
- https://example.com/products/accusamus-animi-animi-earum-quis
+ https://example.com/products/libero-dolores-natus-laborum-enim-enim-officiis
https://via.placeholder.com/640x480.png/009966?text=beatae
https://via.placeholder.com/640x480.png/009966?text=beatae
https://via.placeholder.com/640x480.png/000011?text=deleniti
diff --git a/docs/snippets/receipt-rss-feed.xml b/docs/snippets/receipt-rss-feed.xml
index 0890dff..5009449 100644
--- a/docs/snippets/receipt-rss-feed.xml
+++ b/docs/snippets/receipt-rss-feed.xml
@@ -8,7 +8,7 @@
1
Some category 1
- Wed, 03 Sep 2025 13:26:59 +0000
+ Thu, 04 Sep 2025 00:18:36 +0000
bar
-
@@ -17,7 +17,16 @@
2
Some category 2
- Wed, 03 Sep 2025 14:17:03 +0000
+ Wed, 03 Sep 2025 12:49:54 +0000
+ bar
+
+-
+ Some 3
+ https://example.com/news/some-3
+ 3
+
+ Some category 3
+ Wed, 03 Sep 2025 20:10:14 +0000
bar
diff --git a/docs/snippets/receipt-sitemap-feed.xml b/docs/snippets/receipt-sitemap-feed.xml
index 2a28a0f..e8e9c7a 100644
--- a/docs/snippets/receipt-sitemap-feed.xml
+++ b/docs/snippets/receipt-sitemap-feed.xml
@@ -2,12 +2,12 @@
- https://example.com/products/dolor-culpa-reiciendis-illo-magnam-nisi-quisquam-labore-aspernatur
+ https://example.com/products/eaque-quo-autem-ipsum-omnis-et
2025-08-31T20:00:00+00:00
0.9
- https://example.com/products/quas-tempora-quia-animi-veniam-tempore-et-at
+ https://example.com/products/aut-iusto-magnam-quae-est-aut
2025-08-30T19:00:00+00:00
0.9
diff --git a/docs/snippets/receipt-yandex-feed.xml b/docs/snippets/receipt-yandex-feed.xml
index 0f47c65..de89044 100644
--- a/docs/snippets/receipt-yandex-feed.xml
+++ b/docs/snippets/receipt-yandex-feed.xml
@@ -18,7 +18,7 @@
- https://example.com/products/ipsa-maiores-odit-dicta-temporibus-et-rerum
+ https://example.com/products/aliquid-odio-enim-facilis-ducimus-voluptas
GD-PRDCT-1
Some 1
Some description 1
@@ -29,7 +29,7 @@
bar
- https://example.com/products/quo-rerum-qui-eos-eius-quaerat-voluptatem-et
+ https://example.com/products/corporis-id-unde-magni-omnis-atque
GD-PRDCT-2
Some 2
Some description 2
diff --git a/src/Feeds/Feed.php b/src/Feeds/Feed.php
index 7a0e465..69ebb0a 100644
--- a/src/Feeds/Feed.php
+++ b/src/Feeds/Feed.php
@@ -46,6 +46,16 @@ public function chunkSize(): int
return 1000;
}
+ public function perFile(): int
+ {
+ return 0;
+ }
+
+ public function maxFiles(): int
+ {
+ return 0;
+ }
+
public function header(): string
{
return match ($this->format()) {
@@ -87,10 +97,26 @@ public function filename(): string
->toString();
}
- public function path(): string
+ public function path(int|string $suffix = ''): string
{
+ if (empty($suffix)) {
+ return $this->storage()->path(
+ $this->filename()
+ );
+ }
+
+ $filename = $this->filename();
+
+ $directory = pathinfo($filename, PATHINFO_DIRNAME);
+ $basename = pathinfo($filename, PATHINFO_FILENAME);
+ $extension = pathinfo($filename, PATHINFO_EXTENSION);
+
+ if ($suffix) {
+ $suffix = '-' . $suffix;
+ }
+
return $this->storage()->path(
- $this->filename()
+ "$directory/$basename$suffix.$extension"
);
}
diff --git a/src/Services/ExportService.php b/src/Services/ExportService.php
new file mode 100644
index 0000000..67d2040
--- /dev/null
+++ b/src/Services/ExportService.php
@@ -0,0 +1,219 @@
+perFile = $this->perFile($this->feed);
+ $this->maxFiles = $this->maxFiles($this->feed);
+ $this->total = $this->total();
+ $this->file = $this->fileIndex();
+
+ $this->left = $this->total;
+
+ $this->progressBar = $this->createProgressBar(
+ $this->total
+ );
+ }
+
+ public function chunk(int $chunk): static
+ {
+ $this->chunk = $chunk;
+
+ return $this;
+ }
+
+ public function file(Closure $create, Closure $close): static
+ {
+ $this->createFile = $create;
+ $this->closeFile = $close;
+
+ return $this;
+ }
+
+ public function item(Closure $callback): static
+ {
+ $this->item = $callback;
+
+ return $this;
+ }
+
+ public function export(): void
+ {
+ $this->feed->builder()
+ ->lazyById($this->chunk)
+ ->each(function (Model $model) {
+ $this->records++;
+ $this->left--;
+
+ $this->content[] = value($this->item, $model, $this->isLastItem());
+
+ $this->store();
+
+ if ($this->left <= 0) {
+ return false;
+ }
+
+ if ($this->maxFiles && $this->file >= $this->maxFiles) {
+ return false;
+ }
+ });
+
+ $this->store(true);
+
+ $this->progressBar?->finish();
+ }
+
+ protected function store(bool $force = false): void
+ {
+ $whenRecords = $this->records >= $this->perFile;
+ $whenLeft = $this->total && $this->left <= 0;
+ $whenFile = $this->file > 1 && ! $this->content;
+
+ if (! $force && $whenFile) {
+ return;
+ }
+
+ if ($force || $whenRecords || $whenLeft) {
+ $this->records = 0;
+
+ if ($this->content || ! $this->fileCreated) {
+ $this->append();
+ }
+
+ $this->content = [];
+ }
+
+ if ($force || $whenRecords) {
+ $this->releaseFile();
+ }
+ }
+
+ protected function isLastItem(): bool
+ {
+ return $this->records === $this->perFile || $this->left <= 0;
+ }
+
+ protected function getFile() // @pest-ignore-type
+ {
+ if (! empty($this->resource)) {
+ return $this->resource;
+ }
+
+ $this->fileCreated = true;
+
+ return $this->resource ??= value($this->createFile);
+ }
+
+ protected function releaseFile(): void
+ {
+ if ($this->resource === null) {
+ return;
+ }
+
+ value($this->closeFile, $this->resource, $this->file);
+
+ $this->resource = null;
+
+ $this->file++;
+ }
+
+ protected function append(): void
+ {
+ $this->filesystem->append($this->getFile(), implode(PHP_EOL, $this->content), $this->feed->path());
+ }
+
+ protected function perFile(Feed $feed): int
+ {
+ if ($count = max($feed->perFile(), 0)) {
+ return $count;
+ }
+
+ return $this->modelCount();
+ }
+
+ protected function maxFiles(Feed $feed): int
+ {
+ return max($feed->maxFiles(), 0);
+ }
+
+ protected function total(): int
+ {
+ if ($this->maxFiles === 0) {
+ return $this->modelCount();
+ }
+
+ return $this->perFile * $this->maxFiles;
+ }
+
+ protected function fileIndex(): int
+ {
+ if ($this->perFile === 0 || $this->perFile === $this->total) {
+ return 0;
+ }
+
+ if ($this->perFile >= $this->total) {
+ return 0;
+ }
+
+ return 1;
+ }
+
+ protected function modelCount(): int
+ {
+ return $this->modelCount ??= $this->feed->builder()->count();
+ }
+
+ protected function createProgressBar(int $total): ?ProgressBar
+ {
+ return $this->output?->createProgressBar($total);
+ }
+}
diff --git a/src/Services/FilesystemService.php b/src/Services/FilesystemService.php
index 37ea3b0..3ac08dd 100644
--- a/src/Services/FilesystemService.php
+++ b/src/Services/FilesystemService.php
@@ -16,10 +16,7 @@
use function dirname;
use function fclose;
-use function fflush;
-use function flock;
use function fopen;
-use function ftruncate;
use function fwrite;
use function is_resource;
use function microtime;
@@ -47,8 +44,6 @@ public function createDraft(string $filename) // @pest-ignore-type
// @codeCoverageIgnoreEnd
}
- $this->lock($resource);
-
return $resource;
// @codeCoverageIgnoreStart
} catch (Throwable $e) {
@@ -77,7 +72,6 @@ public function release($resource, string $path): void // @pest-ignore-type
try {
$temp = $this->getMetaPath($resource);
- $this->unlock($resource);
$this->close($resource);
if ($this->file->exists($path)) {
@@ -93,7 +87,7 @@ public function release($resource, string $path): void // @pest-ignore-type
$this->cleanTemporaryDirectory($temp);
// @codeCoverageIgnoreStart
} catch (Throwable $e) {
- throw new CloseFeedException($temp, $e);
+ throw new CloseFeedException($path, $e);
}
// @codeCoverageIgnoreEnd
}
@@ -145,27 +139,4 @@ protected function getMetaPath($file): string // @pest-ignore-type
return $meta['uri'] ?? throw new ResourceMetaException;
}
-
- /**
- * @param resource $resource
- */
- protected function lock($resource): void // @pest-ignore-type
- {
- if (! flock($resource, LOCK_EX)) {
- // @codeCoverageIgnoreStart
- throw new RuntimeException('Resource lock error. The resource may be in use by another process.');
- // @codeCoverageIgnoreEnd
- }
-
- ftruncate($resource, 0);
- }
-
- /**
- * @param resource $resource
- */
- protected function unlock($resource): void // @pest-ignore-type
- {
- fflush($resource);
- flock($resource, LOCK_UN);
- }
}
diff --git a/src/Services/GeneratorService.php b/src/Services/GeneratorService.php
index 7243947..cb46b9b 100644
--- a/src/Services/GeneratorService.php
+++ b/src/Services/GeneratorService.php
@@ -4,6 +4,7 @@
namespace DragonCode\LaravelFeed\Services;
+use Closure;
use DragonCode\LaravelFeed\Converters\Converter;
use DragonCode\LaravelFeed\Events\FeedFinishedEvent;
use DragonCode\LaravelFeed\Events\FeedStartingEvent;
@@ -12,14 +13,12 @@
use DragonCode\LaravelFeed\Helpers\ConverterHelper;
use DragonCode\LaravelFeed\Queries\FeedQuery;
use Illuminate\Console\OutputStyle;
-use Illuminate\Database\Eloquent\Collection;
-use Symfony\Component\Console\Helper\ProgressBar;
+use Illuminate\Database\Eloquent\Model;
use Throwable;
use function blank;
use function event;
use function get_class;
-use function implode;
class GeneratorService
{
@@ -34,18 +33,7 @@ public function feed(Feed $feed, ?OutputStyle $output = null): void
try {
$this->started($feed);
- $file = $this->createDraft(
- $feed->filename()
- );
-
- $this->performHeader($file, $feed);
- $this->performRoot($file, $feed, true);
- $this->performInfo($file, $feed);
- $this->performRoot($file, $feed, false);
- $this->performItem($file, $feed, $output);
- $this->performFooter($file, $feed);
-
- $this->release($file, $feed->path());
+ $this->export($feed, $output, $this->filesystem);
$this->setLastActivity($feed);
@@ -55,37 +43,42 @@ public function feed(Feed $feed, ?OutputStyle $output = null): void
}
}
- protected function performItem($file, Feed $feed, ?OutputStyle $output): void // @pest-ignore-type
+ protected function export(Feed $feed, ?OutputStyle $output, FilesystemService $filesystem): void
{
- $count = $feed->builder()->count();
-
- // @codeCoverageIgnoreStart
- $bar = $this->progressBar($count, $output);
- // @codeCoverageIgnoreEnd
-
- $progress = $count;
+ (new ExportService($feed, $filesystem, $output))
+ ->file(
+ create: $this->createFile($feed),
+ close : $this->closeFile($feed)
+ )
+ ->item(fn (Model $model, bool $last) => $this->converter($feed)->item(
+ item : $feed->item($model),
+ isLast: $last
+ ))
+ ->chunk($feed->chunkSize())
+ ->export();
+ }
- $feed->builder()->chunkById(
- $feed->chunkSize(),
- function (Collection $models) use ($file, $feed, $bar, &$progress) {
- $content = [];
+ protected function createFile(Feed $feed): Closure
+ {
+ return function () use ($feed) {
+ $file = $this->createDraft($feed->filename());
- foreach ($models as $model) {
- $content[] = $this->converter($feed)->item(
- item: $feed->item($model),
- isLast: $progress <= 1
- );
+ $this->performHeader($file, $feed);
+ $this->performRoot($file, $feed, true);
+ $this->performInfo($file, $feed);
+ $this->performRoot($file, $feed, false);
- $bar?->advance();
- $progress--;
- }
+ return $file;
+ };
+ }
- $this->append($file, implode(PHP_EOL, $content), $feed->path());
- }
- );
+ protected function closeFile(Feed $feed): Closure
+ {
+ return function ($file, int $index) use ($feed) {
+ $this->performFooter($file, $feed);
- $bar?->finish();
- $output?->newLine();
+ $this->release($file, $feed->path($index));
+ };
}
protected function performHeader($file, Feed $feed): void // @pest-ignore-type
@@ -161,11 +154,6 @@ protected function converter(Feed $feed): Converter
);
}
- protected function progressBar(int $count, ?OutputStyle $output): ?ProgressBar
- {
- return $output?->createProgressBar($count);
- }
-
protected function started(Feed $feed): void
{
event(new FeedStartingEvent(get_class($feed)));
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/DefaultTest/generate.snap b/tests/.pest/snapshots/Feature/Console/Generation/DefaultTest/generate.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/DefaultTest/generate.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/DisabledTest/generate.snap b/tests/.pest/snapshots/Feature/Console/Generation/DisabledTest/generate.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/DisabledTest/generate.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/EnsureDeleteTest/overwrites_existing_feed_file_and_removes__draft_during_generation.snap b/tests/.pest/snapshots/Feature/Console/Generation/EnsureDeleteTest/overwrites_existing_feed_file_and_removes__draft_during_generation.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/EnsureDeleteTest/overwrites_existing_feed_file_and_removes__draft_during_generation.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/FoundTest/generates_only_the_selected_feed_by_ID_with_data_set__dataset__latest_id__.snap b/tests/.pest/snapshots/Feature/Console/Generation/FoundTest/generates_only_the_selected_feed_by_ID_with_data_set__dataset__latest_id__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/FoundTest/generates_only_the_selected_feed_by_ID_with_data_set__dataset__latest_id__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/FoundTest/generates_only_the_selected_feed_by_ID_with_data_set__dataset__oldest_id__.snap b/tests/.pest/snapshots/Feature/Console/Generation/FoundTest/generates_only_the_selected_feed_by_ID_with_data_set__dataset__oldest_id__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/FoundTest/generates_only_the_selected_feed_by_ID_with_data_set__dataset__oldest_id__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set________.snap b/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set________.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set________.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set_________.snap b/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set_________.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set_________.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set__________2.snap b/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set__________2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set__________2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set__________3.snap b/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set__________3.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set__________3.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set__________4.snap b/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set__________4.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set__________4.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set____foo_bar___.snap b/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set____foo_bar___.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/IncorrectParameterTest/incorrect_with_data_set____foo_bar___.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/NotFoundTest/not_found.snap b/tests/.pest/snapshots/Feature/Console/Generation/NotFoundTest/not_found.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/NotFoundTest/not_found.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/ProgressBarTest/enabled_with_data_set___false__.snap b/tests/.pest/snapshots/Feature/Console/Generation/ProgressBarTest/enabled_with_data_set___false__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/ProgressBarTest/enabled_with_data_set___false__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/ProgressBarTest/enabled_with_data_set___true__.snap b/tests/.pest/snapshots/Feature/Console/Generation/ProgressBarTest/enabled_with_data_set___true__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/ProgressBarTest/enabled_with_data_set___true__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Generation/SpecifiedTest/generate.snap b/tests/.pest/snapshots/Feature/Console/Generation/SpecifiedTest/generate.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Generation/SpecifiedTest/generate.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Console/Schedule/RegisterTest/cron.snap b/tests/.pest/snapshots/Feature/Console/Schedule/RegisterTest/cron.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Console/Schedule/RegisterTest/cron.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___array__.snap b/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___array__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___array__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___attributes__.snap b/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___attributes__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___attributes__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___cdata__.snap b/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___cdata__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___cdata__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___mixed__.snap b/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___mixed__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___mixed__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___value__.snap b/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___value__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/DirectiveTest/it_generate_stub_with_data_set__dataset___value__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__attributes__.snap b/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__attributes__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__attributes__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__header___footer__.snap b/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__header___footer__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__header___footer__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__info__.snap b/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__info__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__info__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__info_before_false__.snap b/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__info_before_false__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__info_before_false__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__root__.snap b/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__root__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/ElementTest/it_generates_documentation_stubs_for_feed_examples_with_data_set__dataset__root__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/ReceiptTest/it_generate_stub_with_data_set__dataset__instagram__.snap b/tests/.pest/snapshots/Feature/Docs/ReceiptTest/it_generate_stub_with_data_set__dataset__instagram__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/ReceiptTest/it_generate_stub_with_data_set__dataset__instagram__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/ReceiptTest/it_generate_stub_with_data_set__dataset__rss__.snap b/tests/.pest/snapshots/Feature/Docs/ReceiptTest/it_generate_stub_with_data_set__dataset__rss__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/ReceiptTest/it_generate_stub_with_data_set__dataset__rss__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/ReceiptTest/it_generate_stub_with_data_set__dataset__sitemap__.snap b/tests/.pest/snapshots/Feature/Docs/ReceiptTest/it_generate_stub_with_data_set__dataset__sitemap__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/ReceiptTest/it_generate_stub_with_data_set__dataset__sitemap__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Docs/ReceiptTest/it_generate_stub_with_data_set__dataset__yandex__.snap b/tests/.pest/snapshots/Feature/Docs/ReceiptTest/it_generate_stub_with_data_set__dataset__yandex__.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Docs/ReceiptTest/it_generate_stub_with_data_set__dataset__yandex__.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Events/FailedTest/failed.snap b/tests/.pest/snapshots/Feature/Events/FailedTest/failed.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Events/FailedTest/failed.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Events/FailedTest/feed_class_link.snap b/tests/.pest/snapshots/Feature/Events/FailedTest/feed_class_link.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Events/FailedTest/feed_class_link.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Events/SuccessTest/dispatches_FeedStarting_and_FeedFinished_events_for_each_generated_feed.snap b/tests/.pest/snapshots/Feature/Events/SuccessTest/dispatches_FeedStarting_and_FeedFinished_events_for_each_generated_feed.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Events/SuccessTest/dispatches_FeedStarting_and_FeedFinished_events_for_each_generated_feed.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set____false__.snap
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set____true__.snap
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set___false__.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set___false__.snap
new file mode 100644
index 0000000..4a5bb93
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set___false__.snap
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set___true__.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set___true__.snap
new file mode 100644
index 0000000..4a5bb93
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set___true__.snap
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Defaults/EmptyTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Defaults/FullTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Defaults/ModelTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Defaults/PartialTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/DefaultTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/InfoTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootInfoTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Csv/RootTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/DefaultTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/InfoTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootInfoTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Json/RootTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/DefaultTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/InfoTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootInfoTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/JsonLines/RootTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/DefaultTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/InfoTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootInfoTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set____false__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set___false__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set____false__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set___false__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set___false____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set___false____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set___false____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set____true__.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set___true__.snap
similarity index 100%
rename from tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set____true__.snap
rename to tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set___true__.snap
diff --git a/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set___true____2.snap b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set___true____2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Formats/Rss/RootTest/export_with_data_set___true____2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/CsvTest/export.snap b/tests/.pest/snapshots/Feature/Feeds/Split/CsvTest/export.snap
new file mode 100644
index 0000000..2b0dc4b
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/CsvTest/export.snap
@@ -0,0 +1,2 @@
+1;Some 1;Some content 1;Some category 1;2025-09-04T04:08:12.000000Z;2025-09-04T04:08:12.000000Z
+2;Some 2;Some content 2;Some category 2;2025-09-04T04:08:12.000000Z;2025-09-04T04:08:12.000000Z
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/CsvTest/export__2.snap b/tests/.pest/snapshots/Feature/Feeds/Split/CsvTest/export__2.snap
new file mode 100644
index 0000000..36e59ef
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/CsvTest/export__2.snap
@@ -0,0 +1 @@
+3;Some 3;Some content 3;Some category 3;2025-09-04T04:08:12.000000Z;2025-09-04T04:08:12.000000Z
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/CsvTest/export__3.snap b/tests/.pest/snapshots/Feature/Feeds/Split/CsvTest/export__3.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/CsvTest/export__3.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/JsonLinesTest/export.snap b/tests/.pest/snapshots/Feature/Feeds/Split/JsonLinesTest/export.snap
new file mode 100644
index 0000000..0385f70
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/JsonLinesTest/export.snap
@@ -0,0 +1,2 @@
+{"id":1,"title":"Some 1","content":"Some content 1","category":"Some category 1","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
+{"id":2,"title":"Some 2","content":"Some content 2","category":"Some category 2","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/JsonLinesTest/export__2.snap b/tests/.pest/snapshots/Feature/Feeds/Split/JsonLinesTest/export__2.snap
new file mode 100644
index 0000000..df5d32a
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/JsonLinesTest/export__2.snap
@@ -0,0 +1 @@
+{"id":3,"title":"Some 3","content":"Some content 3","category":"Some category 3","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/JsonLinesTest/export__3.snap b/tests/.pest/snapshots/Feature/Feeds/Split/JsonLinesTest/export__3.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/JsonLinesTest/export__3.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/JsonTest/export.snap b/tests/.pest/snapshots/Feature/Feeds/Split/JsonTest/export.snap
new file mode 100644
index 0000000..971a0b0
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/JsonTest/export.snap
@@ -0,0 +1,4 @@
+[
+{"id":1,"title":"Some 1","content":"Some content 1","category":"Some category 1","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"},
+{"id":2,"title":"Some 2","content":"Some content 2","category":"Some category 2","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
+]
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/JsonTest/export__2.snap b/tests/.pest/snapshots/Feature/Feeds/Split/JsonTest/export__2.snap
new file mode 100644
index 0000000..df1c334
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/JsonTest/export__2.snap
@@ -0,0 +1,3 @@
+[
+{"id":3,"title":"Some 3","content":"Some content 3","category":"Some category 3","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
+]
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/JsonTest/export__3.snap b/tests/.pest/snapshots/Feature/Feeds/Split/JsonTest/export__3.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/JsonTest/export__3.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/ManyFilesTest/export.snap b/tests/.pest/snapshots/Feature/Feeds/Split/ManyFilesTest/export.snap
new file mode 100644
index 0000000..0385f70
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/ManyFilesTest/export.snap
@@ -0,0 +1,2 @@
+{"id":1,"title":"Some 1","content":"Some content 1","category":"Some category 1","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
+{"id":2,"title":"Some 2","content":"Some content 2","category":"Some category 2","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/ManyFilesTest/export__2.snap b/tests/.pest/snapshots/Feature/Feeds/Split/ManyFilesTest/export__2.snap
new file mode 100644
index 0000000..6713733
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/ManyFilesTest/export__2.snap
@@ -0,0 +1,2 @@
+{"id":3,"title":"Some 3","content":"Some content 3","category":"Some category 3","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
+{"id":4,"title":"Some 4","content":"Some content 4","category":"Some category 4","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/ManyFilesTest/export__3.snap b/tests/.pest/snapshots/Feature/Feeds/Split/ManyFilesTest/export__3.snap
new file mode 100644
index 0000000..9cd97a4
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/ManyFilesTest/export__3.snap
@@ -0,0 +1 @@
+{"id":5,"title":"Some 5","content":"Some content 5","category":"Some category 5","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/ManyFilesTest/export__4.snap b/tests/.pest/snapshots/Feature/Feeds/Split/ManyFilesTest/export__4.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/ManyFilesTest/export__4.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/MaxFilesTest/export.snap b/tests/.pest/snapshots/Feature/Feeds/Split/MaxFilesTest/export.snap
new file mode 100644
index 0000000..0385f70
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/MaxFilesTest/export.snap
@@ -0,0 +1,2 @@
+{"id":1,"title":"Some 1","content":"Some content 1","category":"Some category 1","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
+{"id":2,"title":"Some 2","content":"Some content 2","category":"Some category 2","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/MaxFilesTest/export__2.snap b/tests/.pest/snapshots/Feature/Feeds/Split/MaxFilesTest/export__2.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/MaxFilesTest/export__2.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/PerFileTest/export.snap b/tests/.pest/snapshots/Feature/Feeds/Split/PerFileTest/export.snap
new file mode 100644
index 0000000..0385f70
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/PerFileTest/export.snap
@@ -0,0 +1,2 @@
+{"id":1,"title":"Some 1","content":"Some content 1","category":"Some category 1","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
+{"id":2,"title":"Some 2","content":"Some content 2","category":"Some category 2","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/PerFileTest/export__2.snap b/tests/.pest/snapshots/Feature/Feeds/Split/PerFileTest/export__2.snap
new file mode 100644
index 0000000..df5d32a
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/PerFileTest/export__2.snap
@@ -0,0 +1 @@
+{"id":3,"title":"Some 3","content":"Some content 3","category":"Some category 3","created_at":"2025-09-04T04:08:12.000000Z","updated_at":"2025-09-04T04:08:12.000000Z"}
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/PerFileTest/export__3.snap b/tests/.pest/snapshots/Feature/Feeds/Split/PerFileTest/export__3.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/PerFileTest/export__3.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/RssTest/export.snap b/tests/.pest/snapshots/Feature/Feeds/Split/RssTest/export.snap
new file mode 100644
index 0000000..8631673
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/RssTest/export.snap
@@ -0,0 +1,23 @@
+
+
+
+
+-
+ Some 1
+ https://example.com/news/some-1
+ https://example.com/news/some-1
+
+ Some category 1
+ Thu, 04 Sep 2025 04:08:12 +0000
+
+-
+ Some 2
+ https://example.com/news/some-2
+ https://example.com/news/some-2
+
+ Some category 2
+ Thu, 04 Sep 2025 04:08:12 +0000
+
+
+
+
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/RssTest/export__2.snap b/tests/.pest/snapshots/Feature/Feeds/Split/RssTest/export__2.snap
new file mode 100644
index 0000000..45af7ca
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/RssTest/export__2.snap
@@ -0,0 +1,15 @@
+
+
+
+
+-
+ Some 3
+ https://example.com/news/some-3
+ https://example.com/news/some-3
+
+ Some category 3
+ Thu, 04 Sep 2025 04:08:12 +0000
+
+
+
+
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/RssTest/export__3.snap b/tests/.pest/snapshots/Feature/Feeds/Split/RssTest/export__3.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/RssTest/export__3.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/XmlTest/export.snap b/tests/.pest/snapshots/Feature/Feeds/Split/XmlTest/export.snap
new file mode 100644
index 0000000..1d8cbba
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/XmlTest/export.snap
@@ -0,0 +1,41 @@
+
+
+
+
+ [NEWS]:Some 1
+ Some content 1
+ Some extra data
+
+
+ Luke Skywalker
+ Lightsaber
+
+
+ Sauron]]>
+ Evil Eye
+
+
+ line
+line with some html/xml tag
+line with & symbol
+
+
+ [NEWS]:Some 2
+ Some content 2
+ Some extra data
+
+
+ Luke Skywalker
+ Lightsaber
+
+
+ Sauron]]>
+ Evil Eye
+
+
+ line
+line with some html/xml tag
+line with & symbol
+
+
+
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/XmlTest/export__2.snap b/tests/.pest/snapshots/Feature/Feeds/Split/XmlTest/export__2.snap
new file mode 100644
index 0000000..fca5fbb
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/XmlTest/export__2.snap
@@ -0,0 +1,23 @@
+
+
+
+
+ [NEWS]:Some 3
+ Some content 3
+ Some extra data
+
+
+ Luke Skywalker
+ Lightsaber
+
+
+ Sauron]]>
+ Evil Eye
+
+
+ line
+line with some html/xml tag
+line with & symbol
+
+
+
diff --git a/tests/.pest/snapshots/Feature/Feeds/Split/XmlTest/export__3.snap b/tests/.pest/snapshots/Feature/Feeds/Split/XmlTest/export__3.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Feeds/Split/XmlTest/export__3.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set____123___.snap b/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set____123___.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set____123___.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set____________.snap b/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set____________.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set____________.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set__________________.snap b/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set__________________.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set__________________.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set____foo_1_2_3___.snap b/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set____foo_1_2_3___.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set____foo_1_2_3___.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set____foo___.snap b/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set____foo___.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Queries/Create/ClassTest/not_a_class_with_data_set____foo___.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Queries/Create/ExpressionTest/not_a_class.snap b/tests/.pest/snapshots/Feature/Queries/Create/ExpressionTest/not_a_class.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Queries/Create/ExpressionTest/not_a_class.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Queries/Create/ExpressionTest/not_extending.snap b/tests/.pest/snapshots/Feature/Queries/Create/ExpressionTest/not_extending.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Queries/Create/ExpressionTest/not_extending.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Queries/Create/SuccessTest/creating.snap b/tests/.pest/snapshots/Feature/Queries/Create/SuccessTest/creating.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Queries/Create/SuccessTest/creating.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Queries/Delete/SuccessTest/soft_deletes_a_feed_and_sets_deleted__at.snap b/tests/.pest/snapshots/Feature/Queries/Delete/SuccessTest/soft_deletes_a_feed_and_sets_deleted__at.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Queries/Delete/SuccessTest/soft_deletes_a_feed_and_sets_deleted__at.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Queries/Delete/UnknownIdentifierTest/failed.snap b/tests/.pest/snapshots/Feature/Queries/Delete/UnknownIdentifierTest/failed.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Queries/Delete/UnknownIdentifierTest/failed.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Queries/Restore/SuccessTest/restores_a_soft_deleted_feed_to_active_state.snap b/tests/.pest/snapshots/Feature/Queries/Restore/SuccessTest/restores_a_soft_deleted_feed_to_active_state.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Queries/Restore/SuccessTest/restores_a_soft_deleted_feed_to_active_state.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Feature/Queries/Restore/UnknownIdentifierTest/does_nothing_when_restoring_a_non_existent_feed_ID.snap b/tests/.pest/snapshots/Feature/Queries/Restore/UnknownIdentifierTest/does_nothing_when_restoring_a_non_existent_feed_ID.snap
new file mode 100644
index 0000000..3d7cd51
--- /dev/null
+++ b/tests/.pest/snapshots/Feature/Queries/Restore/UnknownIdentifierTest/does_nothing_when_restoring_a_non_existent_feed_ID.snap
@@ -0,0 +1 @@
+end of snapshots
\ No newline at end of file
diff --git a/tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set___dataset__EmptyFeed__.snap b/tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set__dataset__EmptyFeed__.snap
similarity index 100%
rename from tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set___dataset__EmptyFeed__.snap
rename to tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set__dataset__EmptyFeed__.snap
diff --git a/tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set___dataset__FullFeed__.snap b/tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set__dataset__FullFeed__.snap
similarity index 100%
rename from tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set___dataset__FullFeed__.snap
rename to tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set__dataset__FullFeed__.snap
diff --git a/tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set___dataset__PartialFeed__.snap b/tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set__dataset__PartialFeed__.snap
similarity index 100%
rename from tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set___dataset__PartialFeed__.snap
rename to tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set__dataset__PartialFeed__.snap
diff --git a/tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set___dataset__SitemapFeed__.snap b/tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set__dataset__SitemapFeed__.snap
similarity index 100%
rename from tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set___dataset__SitemapFeed__.snap
rename to tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set__dataset__SitemapFeed__.snap
diff --git a/tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set___dataset__YandexFeed__.snap b/tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set__dataset__YandexFeed__.snap
similarity index 100%
rename from tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set___dataset__YandexFeed__.snap
rename to tests/.pest/snapshots/Unit/Feeds/FilenameTest/filename_with_data_set__dataset__YandexFeed__.snap
diff --git a/tests/Feature/Feeds/Split/CsvTest.php b/tests/Feature/Feeds/Split/CsvTest.php
new file mode 100644
index 0000000..b0b8309
--- /dev/null
+++ b/tests/Feature/Feeds/Split/CsvTest.php
@@ -0,0 +1,13 @@
+ $feed->id,
])->assertSuccessful()->run();
- expect($instance->path())->toBeFile();
+ foreach ($indexes as $index) {
+ expect($instance->path($index))->toBeFile();
- $content = file_get_contents($instance->path());
+ $content = file_get_contents($instance->path($index));
- match ($format) {
- FeedFormatEnum::Json => expect($content)->toBeJson(),
- FeedFormatEnum::JsonLines => expect($content)->toBeJsonLines(),
- FeedFormatEnum::Csv => expect($content)->toBeCsv(),
- FeedFormatEnum::Rss => expect($content)->toBeRss(),
- default => null
- };
+ expect($content)->toMatchSnapshot();
- expect($content)->toMatchSnapshot();
+ match ($format) {
+ FeedFormatEnum::Json => expect($content)->toBeJson(),
+ FeedFormatEnum::JsonLines => expect($content)->toBeJsonLines(),
+ FeedFormatEnum::Csv => expect($content)->toBeCsv(),
+ FeedFormatEnum::Rss => expect($content)->toBeRss(),
+ default => null
+ };
+ }
}
diff --git a/tests/Helpers/models.php b/tests/Helpers/models.php
index 20db89c..c54af03 100644
--- a/tests/Helpers/models.php
+++ b/tests/Helpers/models.php
@@ -8,7 +8,7 @@
function createNews(...$sequence): void
{
- News::factory()->count(3)->sequence(
+ News::factory()->count(count($sequence))->sequence(
...$sequence
)->createMany();
}
diff --git a/tests/Pest.php b/tests/Pest.php
index f4b9875..80ead72 100644
--- a/tests/Pest.php
+++ b/tests/Pest.php
@@ -23,6 +23,8 @@
deleteMigrations();
})
->afterEach(function () {
+ expect('end of snapshots')->toMatchSnapshot();
+
deleteOperations();
deleteMigrations();
});
diff --git a/workbench/app/Data/ManyFilesData.php b/workbench/app/Data/ManyFilesData.php
new file mode 100644
index 0000000..179eee5
--- /dev/null
+++ b/workbench/app/Data/ManyFilesData.php
@@ -0,0 +1,28 @@
+ 'Some ' . $number,
+ 'content' => 'Some content ' . $number,
+ 'category' => 'Some category ' . $number,
+ ];
+ }
+}
diff --git a/workbench/app/Feeds/EmptyFeed.php b/workbench/app/Feeds/EmptyFeed.php
index f3b7d3b..1621f48 100644
--- a/workbench/app/Feeds/EmptyFeed.php
+++ b/workbench/app/Feeds/EmptyFeed.php
@@ -4,7 +4,6 @@
namespace Workbench\App\Feeds;
-use DragonCode\LaravelFeed\Data\ElementData;
use DragonCode\LaravelFeed\Feeds\Feed;
use Illuminate\Database\Eloquent\Builder;
use Workbench\App\Models\News;
@@ -20,9 +19,4 @@ public function header(): string
{
return '';
}
-
- public function root(): ElementData
- {
- return new ElementData;
- }
}
diff --git a/workbench/app/Feeds/FullFeed.php b/workbench/app/Feeds/FullFeed.php
index d821b71..387fb08 100644
--- a/workbench/app/Feeds/FullFeed.php
+++ b/workbench/app/Feeds/FullFeed.php
@@ -13,13 +13,12 @@
use Workbench\App\Models\News;
use function class_basename;
-use function now;
class FullFeed extends Feed
{
public function builder(): Builder
{
- return News::query()->where('updated_at', '>', now()->subDay());
+ return News::query();
}
public function root(): ElementData
diff --git a/workbench/app/Feeds/SplitCsvFeed.php b/workbench/app/Feeds/SplitCsvFeed.php
new file mode 100644
index 0000000..96bbfa5
--- /dev/null
+++ b/workbench/app/Feeds/SplitCsvFeed.php
@@ -0,0 +1,33 @@
+',
+ '',
+ ]);
+ }
+
+ public function footer(): string
+ {
+ return '';
+ }
+}
diff --git a/workbench/app/Feeds/SplitXmlFeed.php b/workbench/app/Feeds/SplitXmlFeed.php
new file mode 100644
index 0000000..eeaecb1
--- /dev/null
+++ b/workbench/app/Feeds/SplitXmlFeed.php
@@ -0,0 +1,40 @@
+