mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 08:20:36 +00:00
Investigate Command 0x1f timeout
This commit is contained in:
@@ -22,6 +22,16 @@ void main() {
|
||||
});
|
||||
|
||||
group('AppProvider self replay handling', () {
|
||||
test('prefers self name over meshcore device name', () {
|
||||
expect(
|
||||
AppProvider.preferredSelfDisplayName(
|
||||
deviceName: 'MeshCore-dz0ny (SI)',
|
||||
selfName: 'dz0ny (SI)',
|
||||
),
|
||||
'dz0ny (SI)',
|
||||
);
|
||||
});
|
||||
|
||||
test('ignores direct self replay without hops', () {
|
||||
final message = Message(
|
||||
id: 'dm-self',
|
||||
|
||||
@@ -233,7 +233,7 @@ void main() {
|
||||
provider.addMessage(
|
||||
_buildReceivedChannelReplay(
|
||||
id: 'c-late-incoming',
|
||||
senderTimestamp: 1700000306,
|
||||
senderTimestamp: 1700000331,
|
||||
senderName: 'dz0ny (SI)',
|
||||
),
|
||||
);
|
||||
@@ -241,6 +241,46 @@ void main() {
|
||||
expect(provider.messages, hasLength(2));
|
||||
});
|
||||
|
||||
test('channel replay can dedupe using lazily resolved self name', () {
|
||||
final provider = MessagesProvider();
|
||||
provider.addSentMessage(
|
||||
_buildSentChannelMessage(id: 'c-lazy', senderTimestamp: 1700000400),
|
||||
);
|
||||
provider.markMessageSent('c-lazy', 0, 0);
|
||||
provider.resolveContactNameCallback = (_) => 'dz0ny (SI)';
|
||||
|
||||
provider.addMessage(
|
||||
_buildReceivedChannelReplay(
|
||||
id: 'c-lazy-incoming',
|
||||
senderTimestamp: 1700000406,
|
||||
senderName: 'dz0ny (SI)',
|
||||
),
|
||||
);
|
||||
|
||||
expect(provider.messages, hasLength(1));
|
||||
expect(provider.messages.single.id, equals('c-lazy'));
|
||||
});
|
||||
|
||||
test('channel replay dedupes meshcore-prefixed self sender name', () {
|
||||
final provider = MessagesProvider();
|
||||
provider.resolveContactNameCallback = (_) => 'MeshCore-dz0ny (SI)';
|
||||
provider.addSentMessage(
|
||||
_buildSentChannelMessage(id: 'c-prefix', senderTimestamp: 1700000500),
|
||||
);
|
||||
provider.markMessageSent('c-prefix', 0, 0);
|
||||
|
||||
provider.addMessage(
|
||||
_buildReceivedChannelReplay(
|
||||
id: 'c-prefix-incoming',
|
||||
senderTimestamp: 1700000500,
|
||||
senderName: 'dz0ny (SI)',
|
||||
),
|
||||
);
|
||||
|
||||
expect(provider.messages, hasLength(1));
|
||||
expect(provider.messages.single.id, equals('c-prefix'));
|
||||
});
|
||||
|
||||
test('missing ACK schedules a delayed retransmission', () {
|
||||
fakeAsync((async) {
|
||||
final provider = MessagesProvider();
|
||||
|
||||
Reference in New Issue
Block a user