summaryrefslogtreecommitdiff
path: root/t/todo_tests/exception_reflects_failed_constraint.t
diff options
context:
space:
mode:
Diffstat (limited to 't/todo_tests/exception_reflects_failed_constraint.t')
-rw-r--r--t/todo_tests/exception_reflects_failed_constraint.t31
1 files changed, 31 insertions, 0 deletions
diff --git a/t/todo_tests/exception_reflects_failed_constraint.t b/t/todo_tests/exception_reflects_failed_constraint.t
new file mode 100644
index 0000000..6375fab
--- /dev/null
+++ b/t/todo_tests/exception_reflects_failed_constraint.t
@@ -0,0 +1,31 @@
+use strict;
+use warnings;
+
+# In the case where a child type constraint's parent constraint fails,
+# the exception should reference the parent type constraint that actually
+# failed instead of always referencing the child'd type constraint
+
+use Test::More;
+use Test::Fatal;
+
+use Moose::Util::TypeConstraints;
+
+is( exception {
+ subtype 'ParentConstraint' => as 'Str' => where {0};
+}, undef, 'specified parent type constraint' );
+
+my $tc;
+is( exception {
+ $tc = subtype 'ChildConstraint' => as 'ParentConstraint' => where {1};
+}, undef, 'specified child type constraint' );
+
+{
+ my $errmsg = $tc->validate();
+
+ TODO: {
+ local $TODO = 'Not yet supported';
+ ok($errmsg !~ /Validation failed for 'ChildConstraint'/, 'exception references failing parent constraint');
+ };
+}
+
+done_testing;