debian-mirror-gitlab/spec/lib/gitlab/hook_data/issue_builder_spec.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

76 lines
2.1 KiB
Ruby
Raw Permalink Normal View History

2020-01-01 13:55:28 +05:30
# frozen_string_literal: true
2018-03-17 18:26:18 +05:30
require 'spec_helper'
2020-07-28 23:09:34 +05:30
RSpec.describe Gitlab::HookData::IssueBuilder do
2020-04-08 14:13:33 +05:30
let_it_be(:label) { create(:label) }
let_it_be(:issue) { create(:labeled_issue, labels: [label], project: label.project) }
2021-04-29 21:17:54 +05:30
2018-03-17 18:26:18 +05:30
let(:builder) { described_class.new(issue) }
describe '#build' do
let(:data) { builder.build }
it 'includes safe attribute' do
%w[
assignee_id
author_id
closed_at
confidential
created_at
description
2020-04-22 19:07:51 +05:30
discussion_locked
2018-03-17 18:26:18 +05:30
due_date
id
iid
last_edited_at
last_edited_by_id
milestone_id
moved_to_id
2019-12-04 20:38:33 +05:30
duplicated_to_id
2018-03-17 18:26:18 +05:30
project_id
relative_position
2019-12-21 20:55:43 +05:30
state_id
2018-03-17 18:26:18 +05:30
time_estimate
title
updated_at
updated_by_id
].each do |key|
expect(data).to include(key)
end
end
it 'includes additional attrs' do
expect(data).to include(:total_time_spent)
2021-09-04 01:27:46 +05:30
expect(data).to include(:time_change)
2018-03-17 18:26:18 +05:30
expect(data).to include(:human_time_estimate)
expect(data).to include(:human_total_time_spent)
2021-09-04 01:27:46 +05:30
expect(data).to include(:human_time_change)
2018-03-17 18:26:18 +05:30
expect(data).to include(:assignee_ids)
2019-12-21 20:55:43 +05:30
expect(data).to include(:state)
2021-09-30 23:02:18 +05:30
expect(data).to include(:severity)
2019-09-04 21:01:54 +05:30
expect(data).to include('labels' => [label.hook_attrs])
2018-03-17 18:26:18 +05:30
end
2018-11-18 11:00:15 +05:30
context 'when the issue has an image in the description' do
let(:issue_with_description) { create(:issue, description: 'test![Issue_Image](/uploads/abc/Issue_Image.png)') }
let(:builder) { described_class.new(issue_with_description) }
it 'sets the image to use an absolute URL' do
2018-12-13 13:39:08 +05:30
expected_path = "#{issue_with_description.project.path_with_namespace}/uploads/abc/Issue_Image.png"
expect(data[:description])
.to eq("test![Issue_Image](#{Settings.gitlab.url}/#{expected_path})")
2018-11-18 11:00:15 +05:30
end
end
2022-05-07 20:08:51 +05:30
context 'for incident' do
let_it_be(:issue) { create(:incident, :with_escalation_status) }
it 'includes additional attr' do
expect(data).to include(:escalation_status)
end
end
2018-03-17 18:26:18 +05:30
end
end