DefaultSelector

Default selection for specification fragments:

  • filter based on the name
  • filter based on the tags
  • filter based on previous execution
Companion:
object
trait Selector
class Object
trait Matchable
class Any
object DefaultSelector.type

Value members

Concrete methods

filter fragments by markers

filter fragments by markers

This method is a bit involved but we have to consider lots of different cases

  • if the marker is a tag or a section
  • if the marker applies to the previous or next fragment
  • if there is an irrelevant empty text between the marker and the fragment it applies to

filter fragments by name

filter fragments by name

filter fragments by previous execution and required status

filter fragments by previous execution and required status

def isEndTag(sections: List[NamedTag], tag: NamedTag): Boolean
def select(env: Env): Fragment => Fragment

select fragments by name, markers and previous execution

select fragments by name, markers and previous execution

All the "appliesToNext = false" markers must be transformed into "appliesToNext = true" except when they are the end of a section.

All the "appliesToNext = false" markers must be transformed into "appliesToNext = true" except when they are the end of a section.

This is because we want to visually include all of e2, e3, e4 in the following acceptance spec

e1 e2 ${section("x")} e3 e4 ${section("x")} e5

def updateSections(sections: List[NamedTag], tag: NamedTag): List[NamedTag]