lib/allure_turnip/formatter.rb in allure_turnip-0.1.1 vs lib/allure_turnip/formatter.rb in allure_turnip-0.2.0
- old
+ new
@@ -112,14 +112,30 @@
def labels(example_or_group)
labels = ALLOWED_LABELS.map { |label| [label, metadata(example_or_group)[label]] }.
find_all { |value| !value[1].nil? }.
inject({}) { |res, value| res.merge(value[0] => value[1]) }
detect_feature_story(labels, example_or_group)
+ detect_tags(labels, example_or_group)
labels
end
def method_or_key(metadata, key)
metadata.respond_to?(key) ? metadata.send(key) : metadata[key]
+ end
+
+ def detect_tags(labels, example_or_group)
+ keys = metadata(example_or_group).keys
+ testId = abstract_tags(keys, AllureTurnip::Config.tms_prefix)
+ issue = abstract_tags(keys, AllureTurnip::Config.issue_prefix)
+ labels[:testId] = testId if testId
+ labels[:issue] = issue if issue
+ end
+
+ def abstract_tags(keys, prefix)
+ prefix = prefix.gsub(/^@/, '')
+ keys.select {|key| key =~ /#{Regexp.escape(prefix)}/}
+ .map {|key| key.match(/#{Regexp.escape(prefix)}(.*)/)[1]}
+ .first
end
def detect_feature_story(labels, example_or_group)
metadata = metadata(example_or_group)
is_group = group?(example_or_group)