Testing
Atoms has two methods created to assist in unit testing, Atom.next() and Atom.buffer().
Atom.next() returns a Future that waits for the next state change while Atom.buffer() can wait for a number of next states.
test('Atom next', () async {
final bmiState = selector<double>(0.0);
// start listen changes
expect(bmiState.next(), completion(20.74));
final calcBMI = atomAction2<double, double>(
(set, weight, height) {
final result = weight / (height * height);
set(bmiState, result);
},
);
calcBMI(65, 1.77)
});