anchor.diff:      _testAppController('simple', storage, _testSimple);
   
       _testAppController('initial search', storage, _initialSearch);
  +
  +    _testAppController('select item, edit, sort=stable', storage,
  +        (AppController ac) {
  +      _expectFirstRun(ac);
  +
  +      expect(ac.notes, hasLength(INITIAL_NOTES.length));
  +
  +      var expectedSortedTitles = INITIAL_NOTES.keys.toList()
  +          ..sort();
  +
  +      var controllerTitles = ac.notes
  +          .map((Selectable<Note> s) => s.value.title)
  +          .toList();
  +
  +      expect(controllerTitles, orderedEquals(expectedSortedTitles));
  +    });
   
     });
   }
  
positive.code: 
  import 'dart:async';
  import 'package:unittest/unittest.dart';
  import 'package:observe/observe.dart';
  
  import 'package:nv/src/config.dart';
  import 'package:nv/src/controllers.dart';
  
negative.code: }
  
  Future<AppController> _whenUpdated(AppController controller) {
    if(controller.isUpdated) {
      return new Future.value(controller);
    }
  
    return new Future(() => _whenUpdated(controller));
  }
  
  Future _expectFirstRun(AppController controller) {
  