Test that triggers don't fire for attr default values (lazy or not)
Andrew Rodland [Sat, 17 Mar 2012 21:30:26 +0000 (17:30 -0400)]
This is consistent with what's documented in Moose perldoc

t/accessor-trigger.t

index 632819e..4728395 100644 (file)
@@ -62,4 +62,35 @@ run_for 'Bar';
 
 run_for 'Baz';
 
+{
+  package Default;
+
+  use Sub::Quote;
+  use Moo;
+
+  has one => (
+    is => 'rw',
+    trigger => quote_sub(q{ push @{$tr}, $_[1] }, { '$tr' => \\@::tr }),
+    default => sub { 0 }
+  );
+}
+
+run_for 'Default';
+
+{
+  package LazyDefault;
+
+  use Sub::Quote;
+  use Moo;
+
+  has one => (
+    is => 'rw',
+    trigger => quote_sub(q{ push @{$tr}, $_[1] }, { '$tr' => \\@::tr }),
+    default => sub { 0 },
+    lazy => 1
+  );
+}
+
+run_for 'LazyDefault';
+
 done_testing;