Skip to content
代码片段 群组 项目
提交 f22add3f 编辑于 作者: Kassio Borges's avatar Kassio Borges 提交者: Kamil Trzciński
浏览文件

Add Pages::PageDeployedEvent

上级 415c3cb9
No related branches found
No related tags found
无相关合并请求
# frozen_string_literal: true
module Pages
class PageDeployedEvent < ::Gitlab::EventStore::Event
def schema
{
'type' => 'object',
'properties' => {
'project_id' => { 'type' => 'integer' },
'namespace_id' => { 'type' => 'integer' },
'root_namespace_id' => { 'type' => 'integer' }
},
'required' => %w[project_id namespace_id root_namespace_id]
}
end
end
end
...@@ -53,6 +53,7 @@ def execute ...@@ -53,6 +53,7 @@ def execute
def success def success
@commit_status.success @commit_status.success
@project.mark_pages_as_deployed @project.mark_pages_as_deployed
publish_deployed_event
super super
end end
...@@ -203,6 +204,16 @@ def entries_count ...@@ -203,6 +204,16 @@ def entries_count
def pages_file_entries_limit def pages_file_entries_limit
project.actual_limits.pages_file_entries project.actual_limits.pages_file_entries
end end
def publish_deployed_event
event = ::Pages::PageDeployedEvent.new(data: {
project_id: project.id,
namespace_id: project.namespace_id,
root_namespace_id: project.root_namespace.id
})
Gitlab::EventStore.publish(event)
end
end end
end end
......
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Pages::PageDeployedEvent do
where(:data, :valid) do
[
[{ project_id: 1, namespace_id: 2, root_namespace_id: 3 }, true],
[{ project_id: 1 }, false],
[{ namespace_id: 1 }, false],
[{ project_id: 'foo', namespace_id: 2 }, false],
[{ project_id: 1, namespace_id: 'foo' }, false],
[{ project_id: [], namespace_id: 2 }, false],
[{ project_id: 1, namespace_id: [] }, false],
[{ project_id: {}, namespace_id: 2 }, false],
[{ project_id: 1, namespace_id: {} }, false],
['foo', false],
[123, false],
[[], false]
]
end
with_them do
it 'validates data' do
constructor = -> { described_class.new(data: data) }
if valid
expect { constructor.call }.not_to raise_error
else
expect { constructor.call }.to raise_error(Gitlab::EventStore::InvalidEvent)
end
end
end
end
...@@ -43,6 +43,16 @@ ...@@ -43,6 +43,16 @@
expect(project.pages_deployed?).to be_truthy expect(project.pages_deployed?).to be_truthy
end end
it 'publishes a PageDeployedEvent event with project id and namespace id' do
expected_data = {
project_id: project.id,
namespace_id: project.namespace_id,
root_namespace_id: project.root_namespace.id
}
expect { subject.execute }.to publish_event(Pages::PageDeployedEvent).with(expected_data)
end
it 'creates pages_deployment and saves it in the metadata' do it 'creates pages_deployment and saves it in the metadata' do
expect do expect do
expect(execute).to eq(:success) expect(execute).to eq(:success)
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册