Justify the state test by what peers write, not by what this library happens to write
This commit is contained in:
@@ -296,8 +296,9 @@ Grouped by what each one constrains.
|
||||
library cannot read with no `messageDlr` at all — goal 2 wants that reported as undetermined, not
|
||||
withheld. Both spellings resolve into `Dlr.intermediate` at the boundary rather than being read a
|
||||
second time in `DlrMerger`, so the library cannot answer the application one way and conclude the
|
||||
other. `sendDlr('ENROUTE')` writes 0x04, so the state test is what the marker test cannot replace.
|
||||
`message_state` 0 is 5.0's `SCHEDULED` and undefined in 3.4; a peer that writes it is read as
|
||||
other. Not every peer marks a transient report 0x20 — an ordinary receipt carrying `stat:ENROUTE`
|
||||
is common — so the state test is what the marker test cannot replace. `message_state` 0 is 5.0's
|
||||
`SCHEDULED` and undefined in 3.4; a peer that writes it is read as
|
||||
transient rather than as saying nothing, maintainer's call, 2026-09-03, since the codec refuses a
|
||||
zero-length integer TLV and so an absent one cannot land there.
|
||||
|
||||
|
||||
@@ -132,6 +132,13 @@ session message is a change to every call site.
|
||||
and applies it to the other is wrong. A budget type both take would close it. Raised by review,
|
||||
2026-09-01.
|
||||
|
||||
- [ ] **Write a transient state as an intermediate delivery notification.** `sendDlr()` marks every
|
||||
receipt `esm_class` 0x04, so `sendDlr('ENROUTE')` announces a non-final state with the marker
|
||||
SMPP 3.4 Appendix B reserves for the final one — the two disagreeing spellings of finality the
|
||||
reading side was taught to reconcile on 2026-09-03. Decided the same day: fix it, off
|
||||
`transientStates` in `dlr.ts` so the writer and the reader cannot drift, in a PR of its own.
|
||||
Costs a bullet in README's "Behaviour that changed on the wire".
|
||||
|
||||
- [ ] **`once()` is copied into four test files, and two copies never give up.**
|
||||
`session-extras.test.ts` and `readme.test.ts` reject after 5000 ms; `session.test.ts` and
|
||||
`tls.test.ts` wait forever, so an event that never fires still hangs the run the way an
|
||||
|
||||
Reference in New Issue
Block a user