halkyon/test/release/targets_test.dart

47 lines
1.4 KiB
Dart
Raw Normal View History

import 'package:test/test.dart';
import '../../tool/src/release/targets.dart';
import '../../tool/src/release/version.dart';
void main() {
const apps = {'learn', 'todo', 'train'};
test('one app, as before, with or without the version asked for', () {
expect(parseTargets(['learn'], apps), [const ReleaseTarget('learn')]);
expect(parseTargets(['train', 'minor'], apps), [
const ReleaseTarget('train', Bump.minor),
]);
});
test('several apps, one after another in the order named, each with its '
'own version asked for after a colon or not at all', () {
expect(parseTargets(['train:minor', 'learn'], apps), [
const ReleaseTarget('train', Bump.minor),
const ReleaseTarget('learn'),
]);
expect(parseTargets(['learn', 'train', 'patch'], apps), [
const ReleaseTarget('learn'),
const ReleaseTarget('train', Bump.patch),
]);
});
test('refuses no app, an unknown one, one named twice, a version without '
'its app or asked for twice, and an unknown version', () {
for (final words in [
<String>[],
['meditate'],
['learn', 'learn:minor'],
['minor'],
['learn:minor', 'patch'],
['learn', 'minor', 'patch'],
['learn:huge'],
['learn:'],
]) {
expect(
() => parseTargets(words, apps),
throwsFormatException,
reason: '$words',
);
}
});
}