|
3 | 3 | describe Allure::ResultUtils do |
4 | 4 | let(:rspec_error) { RSpec::Expectations::ExpectationNotMetError.new("Not met") } |
5 | 5 | let(:error) { StandardError.new("Error") } |
| 6 | + let(:utils) { Allure::ResultUtils } |
| 7 | + |
| 8 | + def raise_multi_error |
| 9 | + aggregate_failures do |
| 10 | + expect(1).to eq(2) |
| 11 | + expect("1").to eq("2") |
| 12 | + end |
| 13 | + end |
| 14 | + |
| 15 | + it "returns framework label" do |
| 16 | + expect(utils.framework_label("rspec")).to eq(Allure::Label.new("framework", "rspec")) |
| 17 | + end |
| 18 | + |
| 19 | + it "returns feature label" do |
| 20 | + expect(utils.feature_label("feature")).to eq(Allure::Label.new("feature", "feature")) |
| 21 | + end |
| 22 | + |
| 23 | + it "returns story label" do |
| 24 | + expect(utils.story_label("story")).to eq(Allure::Label.new("story", "story")) |
| 25 | + end |
| 26 | + |
| 27 | + it "returns package label" do |
| 28 | + expect(utils.package_label("package")).to eq(Allure::Label.new("package", "package")) |
| 29 | + end |
| 30 | + |
| 31 | + it "returns test class label label" do |
| 32 | + expect(utils.test_class_label("testClass")).to eq(Allure::Label.new("testClass", "testClass")) |
| 33 | + end |
| 34 | + |
| 35 | + it "returns parent suite label" do |
| 36 | + expect(utils.parent_suite_label("parentSuite")).to eq(Allure::Label.new("parentSuite", "parentSuite")) |
| 37 | + end |
| 38 | + |
| 39 | + it "returns sub suite label" do |
| 40 | + expect(utils.sub_suite_label("subSuite")).to eq(Allure::Label.new("subSuite", "subSuite")) |
| 41 | + end |
| 42 | + |
| 43 | + it "returns tag label" do |
| 44 | + expect(utils.tag_label("tag")).to eq(Allure::Label.new("tag", "tag")) |
| 45 | + end |
6 | 46 |
|
7 | 47 | it "returns correct status for expectation error" do |
8 | 48 | expect(Allure::ResultUtils.status(rspec_error)).to eq(Allure::Status::FAILED) |
9 | 49 | end |
10 | 50 |
|
| 51 | + it "returns correct status for aggregated error" do |
| 52 | + raise_multi_error |
| 53 | + rescue RSpec::Expectations::MultipleExpectationsNotMetError => e |
| 54 | + expect(Allure::ResultUtils.status(e)).to eq(Allure::Status::FAILED) |
| 55 | + end |
| 56 | + |
11 | 57 | it "returns correct status for error" do |
12 | 58 | expect(Allure::ResultUtils.status(error)).to eq(Allure::Status::BROKEN) |
13 | 59 | end |
14 | 60 |
|
15 | | - it "returns status details" do |
| 61 | + it "returns status details for simple error" do |
16 | 62 | raise error |
17 | 63 | rescue => e |
18 | 64 | status_details = Allure::ResultUtils.status_details(e) |
19 | 65 | expect(status_details.message).to eq("Error") |
20 | | - expect(status_details.message).not_to be_empty |
| 66 | + expect(status_details.trace).not_to be_empty |
| 67 | + end |
| 68 | + |
| 69 | + it "returns status details for aggregated error" do |
| 70 | + raise_multi_error |
| 71 | + rescue RSpec::Expectations::MultipleExpectationsNotMetError => e |
| 72 | + status_details = Allure::ResultUtils.status_details(e) |
| 73 | + expect(status_details.message).to include("Got 2 failures from failure aggregation block") |
| 74 | + expect(status_details.trace).not_to be_empty |
21 | 75 | end |
22 | 76 | end |
0 commit comments