Skip to content

Commit 44d90db

Browse files
Add excluded and mode attributes to Parameter (#591)
* Add excluded and mode attributes to Parameter * PR comments * Make rubocop happy * Update allure-ruby-commons/lib/allure_ruby_commons/model/parameter.rb Co-authored-by: Andrejs <[email protected]> * Update allure-ruby-commons/spec/unit/allure_spec.rb Co-authored-by: Andrejs <[email protected]> * Update allure-ruby-commons/spec/unit/allure_spec.rb Co-authored-by: Andrejs <[email protected]> * Update allure-ruby-commons/lib/allure_ruby_commons/model/parameter.rb Co-authored-by: Andrejs <[email protected]> * Update allure-ruby-commons/lib/allure_ruby_commons/model/parameter.rb Co-authored-by: Andrejs <[email protected]> * Allure::Parameter::DEFAULT fixes * Update allure-ruby-commons/lib/allure_ruby_commons/model/parameter.rb Co-authored-by: Andrejs <[email protected]> * Update allure-ruby-commons/spec/unit/allure_spec.rb Co-authored-by: Andrejs <[email protected]> * Update allure-ruby-commons/lib/allure_ruby_commons/model/parameter.rb Co-authored-by: Andrejs <[email protected]> * Make Rubocop happy again * Missed rubocop --------- Co-authored-by: Andrejs <[email protected]>
1 parent 473ddbd commit 44d90db

File tree

5 files changed

+76
-11
lines changed

5 files changed

+76
-11
lines changed

allure-ruby-commons/lib/allure-ruby-commons.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,9 @@ def description_html(description_html)
118118
# @param [String] name
119119
# @param [String] value
120120
# @return [void]
121-
def parameter(name, value)
121+
def parameter(name, value, excluded: false, mode: Allure::Parameter::DEFAULT)
122122
lifecycle.update_test_case do |test_case|
123-
test_case.parameters.push(Parameter.new(name, value))
123+
test_case.parameters.push(Parameter.new(name, value, excluded: excluded, mode: mode))
124124
end
125125
end
126126

@@ -239,9 +239,9 @@ def run_step(name)
239239
# @param [String] name
240240
# @param [String] value
241241
# @return [void]
242-
def step_parameter(name, value)
242+
def step_parameter(name, value, excluded: false, mode: Allure::Parameter::DEFAULT)
243243
lifecycle.update_test_step do |step|
244-
step.parameters.push(Parameter.new(name, value))
244+
step.parameters.push(Parameter.new(name, value, excluded: excluded, mode: mode))
245245
end
246246
end
247247
end

allure-ruby-commons/lib/allure_ruby_commons/model/parameter.rb

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,29 @@
33
module Allure
44
# Allure model parameter object
55
class Parameter < JSONable
6-
def initialize(name, value)
6+
DEFAULT = "default"
7+
MASKED = "masked"
8+
HIDDEN = "hidden"
9+
10+
def initialize(name, value, excluded: false, mode: DEFAULT)
711
super()
812

913
@name = name
1014
@value = value
15+
@excluded = excluded
16+
@mode = validate_mode!(mode)
1117
end
1218

13-
attr_reader :name, :value
19+
attr_reader :name, :value, :excluded, :mode
20+
21+
private
22+
23+
def validate_mode!(mode)
24+
modes = [DEFAULT, MASKED, HIDDEN]
25+
return mode if modes.include?(mode)
26+
27+
Allure.configuration.logger.error "Parameter mode '#{mode}' is invalid. Valid modes are: #{modes.join(', ')}"
28+
DEFAULT
29+
end
1430
end
1531
end

allure-ruby-commons/lib/allure_ruby_commons/model/test_result.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def history_id
5151
#
5252
# @return [String]
5353
def parameters_string
54-
parameters.map { |p| "#{p.name}=#{p.value}" }.join(";")
54+
parameters.reject(&:excluded).map { |p| "#{p.name}=#{p.value}" }.join(";")
5555
end
5656
end
5757
end

allure-ruby-commons/spec/unit/allure_spec.rb

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,9 @@ def lifecycle
9393

9494
context "with parameter helpers" do
9595
it "adds test parameter" do
96-
allure.parameter("name", "value")
97-
expect(@test_case.parameters.last).to eq(Allure::Parameter.new("name", "value"))
96+
allure.parameter("name", "value", excluded: true, mode: Allure::Parameter::MASKED)
97+
parameter = Allure::Parameter.new("name", "value", excluded: true, mode: Allure::Parameter::MASKED)
98+
expect(@test_case.parameters.last).to eq(parameter)
9899
end
99100
end
100101

@@ -167,9 +168,24 @@ def lifecycle
167168

168169
it "adds parameter" do
169170
allure.run_step("New step") do
170-
allure.step_parameter("name", "value")
171+
allure.step_parameter("name", "value", excluded: true, mode: Allure::Parameter::HIDDEN)
171172
end
172-
expect(last_step.parameters.last).to eq(Allure::Parameter.new("name", "value"))
173+
parameter = Allure::Parameter.new("name", "value", excluded: true, mode: Allure::Parameter::HIDDEN)
174+
expect(last_step.parameters.last).to eq(parameter)
175+
end
176+
177+
it "uses default mode when invalid mode parameter is set" do
178+
modes = [Allure::Parameter::DEFAULT, Allure::Parameter::MASKED, Allure::Parameter::HIDDEN]
179+
allow(Allure.configuration.logger).to receive(:error)
180+
181+
allure.run_step("New step") do
182+
allure.step_parameter("name", "value", excluded: true, mode: "jiberish")
183+
end
184+
185+
msg = "Parameter mode 'jiberish' is invalid. Valid modes are: #{modes.join(', ')}"
186+
expect(Allure.configuration.logger).to have_received(:error).with(msg)
187+
parameter = Allure::Parameter.new("name", "value", mode: Allure::Parameter::DEFAULT, excluded: true)
188+
expect(last_step.parameters.last).to eq(parameter)
173189
end
174190
end
175191

allure-ruby-commons/spec/unit/test_result_spec.rb

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
let!(:result_container) { @result_container = start_test_container("Test Container") }
77
let!(:test_case) { start_test_case(name: "Test Case", environment: environment) }
8+
let(:environment) { "test" }
89

910
context "without allure environment" do
1011
let(:environment) { nil }
@@ -47,6 +48,38 @@
4748
end
4849
end
4950

51+
context "history id" do
52+
it "History id is different for different non-excluded parameters" do
53+
test_case1 = start_test_case(name: "Test Case", history_id: 1)
54+
lifecycle.update_test_case do |test_case|
55+
test_case.parameters.push(Allure::Parameter.new("name", "value1"))
56+
end
57+
test_case1.stop
58+
59+
test_case2 = start_test_case(name: "Test Case", history_id: 1)
60+
lifecycle.update_test_case do |test_case|
61+
test_case.parameters.push(Allure::Parameter.new("name", "value2"))
62+
end
63+
test_case2.stop
64+
expect(test_case1.history_id).not_to eq(test_case2.history_id)
65+
end
66+
67+
it "History id is the same for excluded parameters" do
68+
test_case1 = start_test_case(name: "Test Case", history_id: 1)
69+
lifecycle.update_test_case do |test_case|
70+
test_case.parameters.push(Allure::Parameter.new("name", "value1", excluded: true))
71+
end
72+
test_case1.stop
73+
74+
test_case2 = start_test_case(name: "Test Case", history_id: 1)
75+
lifecycle.update_test_case do |test_case|
76+
test_case.parameters.push(Allure::Parameter.new("name", "value2", excluded: true))
77+
end
78+
test_case2.stop
79+
expect(test_case1.history_id).to eq(test_case2.history_id)
80+
end
81+
end
82+
5083
context "with allure environment" do
5184
let(:environment) { "test" }
5285

0 commit comments

Comments
 (0)