Index: test/backend/metadata_test.dart |
diff --git a/test/backend/metadata_test.dart b/test/backend/metadata_test.dart |
index adc8e78969801d272971596071c8692b60eba771..6fc200a60746bbe78df304e1e11d66c6899c8799 100644 |
--- a/test/backend/metadata_test.dart |
+++ b/test/backend/metadata_test.dart |
@@ -68,7 +68,7 @@ void main() { |
expect(metadata.verboseTrace, isTrue); |
expect(metadata.skip, isFalse); |
- expect(metadata.tags, ['bar', 'baz']); |
+ expect(metadata.tags, unorderedEquals(['bar', 'baz'])); |
expect(metadata.forTag, contains('foo')); |
expect(metadata.forTag['foo'].skip, isTrue); |
}); |
@@ -87,10 +87,38 @@ void main() { |
expect(metadata.skip, isTrue); |
expect(metadata.skipReason, isNull); |
expect(metadata.timeout, equals(Timeout.none)); |
- expect(metadata.tags, equals(['foo', 'bar', 'baz'])); |
+ expect(metadata.tags, unorderedEquals(['foo', 'bar', 'baz'])); |
expect(metadata.forTag.keys, equals(['qux'])); |
}); |
+ test("resolves forTags that adds a behavioral tag", () { |
+ var metadata = new Metadata( |
+ tags: ['foo'], |
+ forTag: { |
+ 'baz': new Metadata(skip: true), |
+ 'bar': new Metadata(verboseTrace: true, tags: ['baz']), |
+ 'foo': new Metadata(tags: ['bar']) |
+ }); |
+ |
+ expect(metadata.verboseTrace, isTrue); |
+ expect(metadata.skip, isTrue); |
+ expect(metadata.tags, unorderedEquals(['foo', 'bar', 'baz'])); |
+ expect(metadata.forTag, isEmpty); |
+ }); |
+ |
+ test("resolves forTags that adds circular tags", () { |
+ var metadata = new Metadata( |
+ tags: ['foo'], |
+ forTag: { |
+ 'foo': new Metadata(tags: ['bar']), |
+ 'bar': new Metadata(tags: ['baz']), |
+ 'baz': new Metadata(tags: ['foo']) |
+ }); |
+ |
+ expect(metadata.tags, unorderedEquals(['foo', 'bar', 'baz'])); |
+ expect(metadata.forTag, isEmpty); |
+ }); |
+ |
test("base metadata takes precedence over forTags", () { |
var metadata = new Metadata( |
verboseTrace: true, |