|
14 | 14 | use SilverStripe\StaticPublishQueue\Job\GenerateStaticCacheJob;
|
15 | 15 | use SilverStripe\StaticPublishQueue\Service\UrlBundleService;
|
16 | 16 | use SilverStripe\StaticPublishQueue\Test\QueuedJobsTestService;
|
| 17 | +use SilverStripe\StaticPublishQueue\Test\StaticPublisherTest\Model\ExtensionAddsTrigger; |
| 18 | +use SilverStripe\StaticPublishQueue\Test\StaticPublisherTest\Model\DataObjectNoTrigger; |
17 | 19 | use Symbiote\QueuedJobs\DataObjects\QueuedJobDescriptor;
|
18 | 20 | use Symbiote\QueuedJobs\Services\QueuedJob;
|
19 | 21 | use Symbiote\QueuedJobs\Services\QueuedJobHandler;
|
@@ -232,6 +234,39 @@ public function testDoUnpublish(): void
|
232 | 234 | $this->assertEqualsCanonicalizing($expectedUrls, $resultUrls);
|
233 | 235 | }
|
234 | 236 |
|
| 237 | + public function testStaticPublishingTriggerOnExtension(): void |
| 238 | + { |
| 239 | + // Inclusion of parent/child is tested in PublishableSiteTreeTest |
| 240 | + SiteTree::config()->set('regenerate_parents', PublishableSiteTree::REGENERATE_RELATIONS_NONE); |
| 241 | + SiteTree::config()->set('regenerate_children', PublishableSiteTree::REGENERATE_RELATIONS_NONE); |
| 242 | + |
| 243 | + DataObjectNoTrigger::add_extension(ExtensionAddsTrigger::class); |
| 244 | + DataObjectNoTrigger::add_extension(SiteTreePublishingEngine::class); |
| 245 | + |
| 246 | + /** @var QueuedJobsTestService $service */ |
| 247 | + $service = QueuedJobService::singleton(); |
| 248 | + |
| 249 | + $dataObject = DataObjectNoTrigger::create()->write(); |
| 250 | + $dataObject->publishRecursive(); |
| 251 | + |
| 252 | + $jobs = $service->getJobs(); |
| 253 | + |
| 254 | + // We should only have 1 job queued |
| 255 | + $this->assertCount(1, $jobs); |
| 256 | + |
| 257 | + // Let's grab the job and inspect the contents |
| 258 | + /** @var GenerateStaticCacheJob $updateJob */ |
| 259 | + $updateJob = $this->getJobByClassName($jobs, GenerateStaticCacheJob::class); |
| 260 | + |
| 261 | + $expectedUrls = [ |
| 262 | + 'http://example.com/subpage/dataobject-1', |
| 263 | + ]; |
| 264 | + $resultUrls = array_keys($updateJob->getJobData()->jobData->URLsToProcess); |
| 265 | + |
| 266 | + $this->assertInstanceOf(GenerateStaticCacheJob::class, $updateJob); |
| 267 | + $this->assertEqualsCanonicalizing($expectedUrls, $resultUrls); |
| 268 | + } |
| 269 | + |
235 | 270 | protected function getJobByClassName(array $jobs, string $className): ?QueuedJob
|
236 | 271 | {
|
237 | 272 | foreach ($jobs as $job) {
|
|
0 commit comments