indexnowkit/testing
Testing helpers for IndexNowKit: fake IndexNow submissions, assert which URLs were sent, and inspect requests without hitting live search engine endpoints, so your test suite stays fast, deterministic, and offline.
Conformance\OptionalPackageAssertions::assertDetected() lets CI assert that physically absent optional packages (sitemap, verify, history) are correctly reported as "not installed," via a dedicated optional-packages-absent job that composer removes them before detection runs. That's a real product concern: your "is this feature on?" diagnostics must not lie when a dependency is missing.indexnowkit/core ^0.13. Adopters should treat core as a coupled version stream and plan upgrades adapter-and-core together.Good fit when:
assertDetected() and INDEXNOWKIT_OPTIONAL_PACKAGES=absent job cover exactly that class of bug.Conformance\Arrays::merge($base, $overrides) (nested associative blocks merge key-by-key; lists, empty arrays, scalars replace) is now the single implementation behind the Laravel, Yii2 and Yii3 test fixtures — useful if you write adapter-level tests or extend fixtures.Look elsewhere or wait when:
^0.13 core requirement means adapters are not independently versioned in practice.To executives (one paragraph). This is a small, low-cost infrastructure dependency that automates telling search engines when our pages change — shortening the gap between publishing and being indexed, without a paid vendor. The new release doesn't add customer-facing features; it hardens the quality gate: the project's test suite now automatically enforces the same protocol contract across every framework it supports, and expands to a new platform (Bitrix) next. Translation for the business: if we adopt across more than one platform, they stay behaviorally consistent, and each new adapter must pass compliance tests on day one rather than after a bug report.
To engineering. Upgrade is low-risk and mostly test-surface: no breaking API changes described, one version constraint (indexnowkit/core ^0.13). Three things worth knowing — (1) ConformanceIdsTest no longer hard-codes the four known adapters; it derives the list from packages/* requiring indexnowkit/core with a tests/ directory and asserts at least four are found, so a newly added adapter is automatically required to supply H01–H06. (2) OptionalPackageAssertions::assertDetected() closes a real gap: previously the "not installed" tests passed false with packages still installed, which verified the message text but not the actual boot path. Adopt the optional-packages-absent CI job pattern (composer remove sitemap/verify/history, then run detection) if you have feature-detection code of your own. (3) Conformance\Arrays::merge() is now the single merge implementation — nested associative merges key-by-key, everything else replaces. If your fixtures carry a local copy, delete it and delegate.
Ask: approve the core+adapter upgrade in the next maintenance window and adopt the absent-package CI job; no product roadmap change required.
How can I help you explore Laravel packages today?