dart-sass/test/dart_api/value/utils.dart

35 lines
1.1 KiB
Dart
Raw Normal View History

// Copyright 2018 Google Inc. Use of this source code is governed by an
// MIT-style license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT.
import 'package:test/test.dart';
import 'package:sass/sass.dart';
import 'package:sass/src/exception.dart';
/// Parses [source] by way of a function call.
Value parseValue(String source) {
Value value;
compileString("a {b: foo(($source))}", functions: [
2018-11-16 00:16:24 +01:00
Callable("foo", r"$arg", expectAsync1((arguments) {
expect(arguments, hasLength(1));
value = arguments.first;
return sassNull;
}))
]);
return value;
}
/// A matcher that asserts that a function throws a [SassScriptException].
final throwsSassScriptException =
2018-06-15 22:58:13 +02:00
throwsA(const TypeMatcher<SassScriptException>());
/// Like [equals], but asserts that the hash codes of the values are the same as
/// well.
Matcher equalsWithHash(expected) => predicate((actual) {
expect(actual, equals(expected));
expect(actual.hashCode, equals(expected.hashCode),
reason: "Expected $actual's hash code to equal $expected's.");
return true;
});