import 'package:flutter_test/flutter_test.dart'; import 'package:tane/services/discovery_area.dart'; void main() { test('coarsens the area to the search precision', () { expect(searchPrefix('sp3e9', 4), 'sp3e'); expect(searchPrefix('sp3e9', 3), 'sp3'); expect(searchPrefix('sp3e9', 5), 'sp3e9'); }); test('never asks for more than the area actually has', () { expect(searchPrefix('sp', 4), 'sp'); expect(searchPrefix('', 4), ''); }); test('two neighbours in adjacent 5-char cells share a 4-char prefix', () { // The crux of the bug: sp3e9 and sp3e8 are different ±2.4 km cells, but // searching at precision 4 collapses both to 'sp3e', so they find each // other. Publishing emits the ladder down to 'sp3e', so this matches. expect(searchPrefix('sp3e9', 4), searchPrefix('sp3e8', 4)); }); }