83 lines
2.1 KiB
PHP
83 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace Tests\RequestFactories;
|
|
|
|
use App\Lib\Editor\EditorData;
|
|
use Worksome\RequestFactories\RequestFactory;
|
|
|
|
class EditorRequestFactory extends RequestFactory
|
|
{
|
|
/**
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function definition(): array
|
|
{
|
|
return [
|
|
'time' => 45069432,
|
|
'blocks' => [
|
|
['id' => 'TTzz66', 'type' => 'paragraph', 'data' => ['text' => 'lorem']]
|
|
],
|
|
'version' => '1.0',
|
|
];
|
|
}
|
|
|
|
public function empty(): self
|
|
{
|
|
return $this->state(['blocks' => []]);
|
|
}
|
|
|
|
/**
|
|
* @param array<string, mixed> $conditions
|
|
*/
|
|
public function text(int $id, string $text, array $conditions = ['mode' => 'all', 'ifs' => []]): self
|
|
{
|
|
return $this->state($this->paragraphBlock($id, $text, $conditions));
|
|
}
|
|
|
|
/**
|
|
* @param array<string, mixed> $conditions
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function paragraphBlock(int $id, string $text, array $conditions = ['mode' => 'all', 'ifs' => []]): array
|
|
{
|
|
return [
|
|
'time' => 1,
|
|
'version' => '1.0',
|
|
'blocks' => [
|
|
[
|
|
'id' => $id,
|
|
'type' => 'paragraph',
|
|
'data' => ['text' => $text],
|
|
'tunes' => [
|
|
'condition' => $conditions
|
|
]
|
|
]
|
|
],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @param array<int, string> $paragraphs
|
|
*/
|
|
public function paragraphs(array $paragraphs): self
|
|
{
|
|
return $this->state([
|
|
'time' => 1,
|
|
'version' => '1.0',
|
|
'blocks' => collect($paragraphs)->map(fn ($paragraph) => [
|
|
'id' => $this->faker->numberBetween([0, 10000]),
|
|
'type' => 'paragraph',
|
|
'data' => ['text' => $paragraph],
|
|
'tunes' => [
|
|
'condition' => ['mode' => 'all', 'ifs' => []]
|
|
]
|
|
])->toArray(),
|
|
]);
|
|
}
|
|
|
|
public function toData(): EditorData
|
|
{
|
|
return EditorData::from($this->create());
|
|
}
|
|
}
|