test: add NIP-40 standalone expiration integration coverage - #528
Conversation
There was a problem hiding this comment.
Pull request overview
Adds standalone (kind 1 / text_note) NIP-40 expiration integration coverage to complement existing NIP-33 expiration tests, plus a small integration-test helper refactor to allow asserting rejected publishes.
Changes:
- Added Gherkin scenarios for expired-in-past, expires-in-future, and post-storage-expiration behavior for kind 1 events.
- Added Cucumber step definitions for publishing expiring text_note events, waiting for expiration, subscribing, and asserting EOSE + counts.
- Added a lower-level
publishEventhelper to observeOKresults without forcing expected success, and reimplementedsendEventon top.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| test/integration/features/nip-40/nip-40.feature | Adds NIP-40 standalone expiration scenarios for kind 1 events. |
| test/integration/features/nip-40/nip-40.feature.ts | Implements the step definitions to publish expiring events and assert subscription results. |
| test/integration/features/helpers.ts | Introduces publishEvent and refactors sendEvent to allow asserting unsuccessful publishes. |
| .changeset/empty-nip40-tests.md | Adds an “empty” changeset note for the test-only change. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Priyanshubhartistm
commented
Apr 19, 2026
Hey @cameri, I resolved the merge conflicts and pushed the updated branch. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Description
test/integration/features/nip-40/nip-40.feature.test/integration/features/nip-40/nip-40.feature.ts.EventTags.ExpirationandEventExpirationTimeMetadataKeyfromsrc/constants/base.ts.test/integration/features/helpers.tsto publish events without forcing expected OK success, so expiration edge cases can be asserted cleanly.Related Issue
Motivation and Context
How Has This Been Tested?
npm run docker:test:integration -- test/integration/features/nip-40/nip-40.featureScreenshots (if appropriate):
Types of changes
Checklist: