35 lines
1.1 KiB
Ruby
35 lines
1.1 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Gitlab::AkismetHelper, type: :helper do
|
|
let(:project) { create(:project) }
|
|
let(:user) { create(:user) }
|
|
|
|
before do
|
|
allow(Gitlab.config.gitlab).to receive(:url).and_return(Settings.send(:build_gitlab_url))
|
|
allow_any_instance_of(ApplicationSetting).to receive(:akismet_enabled).and_return(true)
|
|
allow_any_instance_of(ApplicationSetting).to receive(:akismet_api_key).and_return('12345')
|
|
end
|
|
|
|
describe '#check_for_spam?' do
|
|
it 'returns true for non-member' do
|
|
expect(helper.check_for_spam?(project, user)).to eq(true)
|
|
end
|
|
|
|
it 'returns false for member' do
|
|
project.team << [user, :guest]
|
|
expect(helper.check_for_spam?(project, user)).to eq(false)
|
|
end
|
|
end
|
|
|
|
describe '#is_spam?' do
|
|
it 'returns true for spam' do
|
|
environment = {
|
|
'action_dispatch.remote_ip' => '127.0.0.1',
|
|
'HTTP_USER_AGENT' => 'Test User Agent'
|
|
}
|
|
|
|
allow_any_instance_of(::Akismet::Client).to receive(:check).and_return([true, true])
|
|
expect(helper.is_spam?(environment, user, 'Is this spam?')).to eq(true)
|
|
end
|
|
end
|
|
end
|