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));
  });
}
