Commit 449e8298 authored by Patrick Derichs's avatar Patrick Derichs

Add StateNote synthetic note

parent 4f2b8f90
# frozen_string_literal: true
class StateNote < SyntheticNote
def self.from_event(event, resource: nil, resource_parent: nil)
attrs = note_attributes(event.state, event, resource, resource_parent)
StateNote.new(attrs)
end
def note_html
@note_html ||= "<p dir=\"auto\">#{note_text(html: true)}</p>"
end
private
def note_text(html: false)
event.state
end
end
# frozen_string_literal: true
require 'spec_helper'
describe StateNote do
describe '.from_event' do
let_it_be(:author) { create(:user) }
let_it_be(:project) { create(:project, :repository) }
let_it_be(:noteable) { create(:issue, author: author, project: project) }
ResourceStateEvent.states.each do |state, _value|
context "with event state #{state}" do
let_it_be(:event) { create(:resource_state_event, issue: noteable, state: state, created_at: '2020-02-05') }
subject { described_class.from_event(event, resource: noteable, resource_parent: project) }
it_behaves_like 'a system note', exclude_project: true do
let(:action) { state.to_s }
end
it 'contains the expected values' do
expect(subject.author).to eq(author)
expect(subject.created_at).to eq(event.created_at)
expect(subject.note_html).to eq("<p dir=\"auto\">#{state}</p>")
end
end
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment