From c3ea34e762576be018041b89b20885a2698c586b Mon Sep 17 00:00:00 2001 From: Michael Miller Date: Thu, 26 Sep 2019 14:57:31 -0600 Subject: [PATCH] Retrieve test value for sample group --- src/spectator/dsl/groups.cr | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/spectator/dsl/groups.cr b/src/spectator/dsl/groups.cr index 309ba68..abe93b4 100644 --- a/src/spectator/dsl/groups.cr +++ b/src/spectator/dsl/groups.cr @@ -26,22 +26,25 @@ module Spectator context({{what}}) {{block}} end - macro sample(what, &block) + macro sample(collection, &block) {% block_arg = block.args.empty? ? :value.id : block.args.first.id %} - class Sample%sample < {{@type.id}} - def %collection - {{what}} - end + + def %collection + {{collection}} + end + + def %to_a + %collection.to_a end class Context%sample < {{@type.id}} - ::Spectator::SpecBuilder.start_sample_group({{what.stringify}}, :%sample) do |values| - sample = Sample%sample.new(values) - sample.%collection.to_a + ::Spectator::SpecBuilder.start_sample_group({{collection.stringify}}, :%sample) do |values| + sample = {{@type.id}}.new(values) + sample.%to_a end def {{block_arg}} - 1 + @spectator_test_values.get_value(:%sample, typeof(%to_a.first)) end {{block.body}}