allure-cucumber 2.28.0 → 2.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6cd30503dda93379961b5a773ba7f5ea23d8f54e38fa78c048ddb6ef6ce900de
4
- data.tar.gz: 58b7297859271ab7dbd796c1a821b3d2049a8c56517b475ad931b2298afc8a96
3
+ metadata.gz: ae0d1410dafce421132f4e0cce90d3ea888ab482b975fe3d5c8967cf1e342de1
4
+ data.tar.gz: 8298c24b8eaf173a6c64b46b32c9d39a914e519bea9b58fa9257d0ac1095f620
5
5
  SHA512:
6
- metadata.gz: 2b506f4bd1537a68148b33d37f55c8b918c59fe630dd87ab4c8e06c400b7dec4f55319cdbab8457114adc44d8bae05ef7b1a3222c80b3f2ec5641b2245af1880
7
- data.tar.gz: db3a8d5590409a64716239f0872503dd0b8dec0f1ca80c5fed38e643adb05cd56608c03e2bdbe6b91f8040b05cf747eda565c66b6223862221fe1df54901823e
6
+ metadata.gz: 1e13613580e52fe6967aac10d906aad509248d711afdab57b18226d840702247f976395934ea3dc519b25a84de6762282b43e55d143c61e46f1f0ff21b527b63
7
+ data.tar.gz: 434b9f788c6327bddc9a687fd55653feaf0b3b39177d27c8d847972013d8ace1fa079ef7f89d01e7aa939adf46b49b85eb5c4bcfb9bbda8c58064a65fc0acb60
@@ -26,6 +26,7 @@ module AllureCucumber
26
26
  description_html: scenario.description,
27
27
  history_id: scenario.id,
28
28
  full_name: scenario.name,
29
+ title_path: scenario.title_path,
29
30
  labels: parser.labels,
30
31
  links: parser.links,
31
32
  parameters: parser.parameters,
@@ -25,6 +25,12 @@ module AllureCucumber
25
25
  @feature_name ||= feature.name
26
26
  end
27
27
 
28
+ # Title path without the final scenario display name.
29
+ # @return [Array<String>]
30
+ def title_path
31
+ [feature_path, feature_name, rule_name].compact
32
+ end
33
+
28
34
  # Scenario name
29
35
  # @return [String]
30
36
  def name
@@ -52,19 +58,61 @@ module AllureCucumber
52
58
  # Feature file name
53
59
  # @return [String]
54
60
  def feature_file_name
55
- @feature_file_name ||= test_case.location.file.split("/").last.gsub(".feature", "")
61
+ @feature_file_name ||= File.basename(location_file, ".feature")
56
62
  end
57
63
 
58
64
  # Feature folder
59
65
  # @return [String]
60
66
  def feature_folder
61
- @feature_folder ||= test_case.location.file.split("/")[-2]
67
+ @feature_folder ||= begin
68
+ directory = File.dirname(location_file)
69
+ directory == "." ? nil : File.basename(directory)
70
+ end
62
71
  end
63
72
 
64
73
  private
65
74
 
66
75
  attr_reader :test_case, :scenario_source, :feature
67
76
 
77
+ # @return [String]
78
+ def feature_path
79
+ @feature_path ||= location_file.delete_prefix("./")
80
+ end
81
+
82
+ # @return [String]
83
+ def location_file
84
+ @location_file ||= test_case.location.file
85
+ end
86
+
87
+ # @return [String, nil]
88
+ def rule_name
89
+ @rule_name ||= rule&.name
90
+ end
91
+
92
+ # @return [Object, nil]
93
+ def rule
94
+ return unless scenario_id
95
+
96
+ @rule ||= Array(feature.children).find do |child|
97
+ child.respond_to?(:rule) && child.rule &&
98
+ rule_scenario_ids(child.rule).include?(scenario_id)
99
+ end&.rule
100
+ end
101
+
102
+ # @return [Array<String>]
103
+ def rule_scenario_ids(rule)
104
+ Array(rule.children).filter_map do |child|
105
+ next unless child.respond_to?(:scenario)
106
+
107
+ child.scenario&.id
108
+ end
109
+ end
110
+
111
+ # @return [String, nil]
112
+ def scenario_id
113
+ @scenario_id ||= scenario.respond_to?(:id) ? scenario.id : nil
114
+ end
115
+
68
116
  # Is scenario outline
69
117
  # @return [Boolean]
70
118
  def scenario_outline?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allure-cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.28.0
4
+ version: 2.29.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrejs Cunskis
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 2.28.0
18
+ version: 2.29.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - '='
24
24
  - !ruby/object:Gem::Version
25
- version: 2.28.0
25
+ version: 2.29.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: csv
28
28
  requirement: !ruby/object:Gem::Requirement