143d0e2666
This will add audit_json.log that writes one line per audit event. For example: { "severity":"INFO", "time":"2018-10-17T17:38:22.523Z", "author_id":3, "entity_id":2, "entity_type":"Project", "change":"visibility", "from":"Private", "to":"Public", "author_name":"John Doe4", "target_id":2, "target_type":"Project", "target_details":"namespace2/project2" }
26 lines
881 B
Ruby
26 lines
881 B
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
describe AuditEventService do
|
|
let(:project) { create(:project) }
|
|
let(:user) { create(:user) }
|
|
let(:project_member) { create(:project_member, user: user) }
|
|
let(:service) { described_class.new(user, project, { action: :destroy }) }
|
|
let(:logger) { instance_double(Gitlab::AuditJsonLogger) }
|
|
|
|
describe '#security_event' do
|
|
before do
|
|
expect(service).to receive(:file_logger).and_return(logger)
|
|
end
|
|
|
|
it 'creates an event and logs to a file' do
|
|
expect(logger).to receive(:info).with(author_id: user.id,
|
|
entity_id: project.id,
|
|
entity_type: "Project",
|
|
action: :destroy)
|
|
|
|
expect { service.security_event }.to change(SecurityEvent, :count).by(1)
|
|
end
|
|
end
|
|
end
|