69 lines
1.8 KiB
Ruby
69 lines
1.8 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'spec_helper'
|
||
|
|
||
|
RSpec.describe Gitlab::GithubImport::Importer::Events::Renamed do
|
||
|
subject(:importer) { described_class.new(project, user.id) }
|
||
|
|
||
|
let_it_be(:project) { create(:project, :repository) }
|
||
|
let_it_be(:user) { create(:user) }
|
||
|
|
||
|
let(:issue) { create(:issue, project: project) }
|
||
|
|
||
|
let(:issue_event) do
|
||
|
Gitlab::GithubImport::Representation::IssueEvent.from_json_hash(
|
||
|
'id' => 6501124486,
|
||
|
'actor' => { 'id' => 4, 'login' => 'alice' },
|
||
|
'event' => 'renamed',
|
||
|
'commit_id' => nil,
|
||
|
'created_at' => '2022-04-26 18:30:53 UTC',
|
||
|
'old_title' => 'old title',
|
||
|
'new_title' => 'new title',
|
||
|
'issue_db_id' => issue.id
|
||
|
)
|
||
|
end
|
||
|
|
||
|
let(:expected_note_attrs) do
|
||
|
{
|
||
|
noteable_id: issue.id,
|
||
|
noteable_type: Issue.name,
|
||
|
project_id: project.id,
|
||
|
author_id: user.id,
|
||
|
note: "changed title from **{-old-} title** to **{+new+} title**",
|
||
|
system: true,
|
||
|
created_at: issue_event.created_at,
|
||
|
updated_at: issue_event.created_at
|
||
|
}.stringify_keys
|
||
|
end
|
||
|
|
||
|
let(:expected_system_note_metadata_attrs) do
|
||
|
{
|
||
|
action: "title",
|
||
|
created_at: issue_event.created_at,
|
||
|
updated_at: issue_event.created_at
|
||
|
}.stringify_keys
|
||
|
end
|
||
|
|
||
|
describe '#execute' do
|
||
|
it 'creates expected note' do
|
||
|
expect { importer.execute(issue_event) }.to change { issue.notes.count }
|
||
|
.from(0).to(1)
|
||
|
|
||
|
expect(issue.notes.last)
|
||
|
.to have_attributes(expected_note_attrs)
|
||
|
end
|
||
|
|
||
|
it 'creates expected system note metadata' do
|
||
|
expect { importer.execute(issue_event) }.to change { SystemNoteMetadata.count }
|
||
|
.from(0).to(1)
|
||
|
|
||
|
expect(SystemNoteMetadata.last)
|
||
|
.to have_attributes(
|
||
|
expected_system_note_metadata_attrs.merge(
|
||
|
note_id: Note.last.id
|
||
|
)
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
end
|