bd557e4b64
Add new global application settings for default project and snippet visibility levels.
75 lines
2 KiB
Ruby
75 lines
2 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe VisibilityLevelHelper do
|
|
include Haml::Helpers
|
|
|
|
before :all do
|
|
init_haml_helpers
|
|
end
|
|
|
|
let(:project) { create(:project) }
|
|
|
|
describe 'visibility_level_description' do
|
|
shared_examples 'a visibility level description' do
|
|
let(:desc) do
|
|
visibility_level_description(Gitlab::VisibilityLevel::PRIVATE,
|
|
form_model)
|
|
end
|
|
|
|
let(:expected_class) do
|
|
class_name = case form_model.class.name
|
|
when 'String'
|
|
form_model
|
|
else
|
|
form_model.class.name
|
|
end
|
|
|
|
class_name.match(/(project|snippet)$/i)[0]
|
|
end
|
|
|
|
it 'should refer to the correct class' do
|
|
expect(desc).to match(/#{expected_class}/i)
|
|
end
|
|
end
|
|
|
|
context 'form_model argument is a String' do
|
|
context 'model object is a personal snippet' do
|
|
it_behaves_like 'a visibility level description' do
|
|
let(:form_model) { 'PersonalSnippet' }
|
|
end
|
|
end
|
|
|
|
context 'model object is a project snippet' do
|
|
it_behaves_like 'a visibility level description' do
|
|
let(:form_model) { 'ProjectSnippet' }
|
|
end
|
|
end
|
|
|
|
context 'model object is a project' do
|
|
it_behaves_like 'a visibility level description' do
|
|
let(:form_model) { 'Project' }
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'form_model argument is a model object' do
|
|
context 'model object is a personal snippet' do
|
|
it_behaves_like 'a visibility level description' do
|
|
let(:form_model) { create(:personal_snippet) }
|
|
end
|
|
end
|
|
|
|
context 'model object is a project snippet' do
|
|
it_behaves_like 'a visibility level description' do
|
|
let(:form_model) { create(:project_snippet, project: project) }
|
|
end
|
|
end
|
|
|
|
context 'model object is a project' do
|
|
it_behaves_like 'a visibility level description' do
|
|
let(:form_model) { project }
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|