← Back to index

lib/BDD/Behave/SpecTree/Suite.rakumod

13 / 13 lines covered (100.0%)

1unit module BDD::Behave::SpecTree::Suite;23need BDD::Behave::SpecTree::Core;4need BDD::Behave::SpecTree::Example;5need BDD::Behave::SpecTree::ExampleGroup;67constant SpecNode = BDD::Behave::SpecTree::Core::SpecNode;8constant Container = BDD::Behave::SpecTree::Core::Container;9constant Example = BDD::Behave::SpecTree::Example::Example;10constant ExampleGroup = BDD::Behave::SpecTree::ExampleGroup::ExampleGroup;1112our class Suite is SpecNode does Container {13  has @.lets;1415  method groups {16    @!children.grep(ExampleGroup);17  }1819  method examples {20    @!children.grep(Example);21  }2223  multi method create(24    :$description = 'suite',25    :$file = $*PROGRAM.abspath.IO,26    :$line = 0,27    :%metadata = {}28  ) {29    self.new(:$description, :$file, :$line, :%metadata);30  }3132  method add-group(ExampleGroup $group --> ExampleGroup) {33    self.add-child($group);34  }3536  method add-example(Example $example --> Example) {37    self.add-child($example);38  }3940  method add-let($let) {41    @!lets.push($let);42    $let;43  }4445  method let-definitions {46    @!lets // [];47  }48}