Commit 3cf40548 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'split-up-builds' into 'master'

Split up 20min+ `spec:other` and `spinach:project` builds to increase parallelization



See merge request !2036
parents d910424c 37199719
...@@ -24,6 +24,27 @@ spec:api: ...@@ -24,6 +24,27 @@ spec:api:
- ruby - ruby
- mysql - mysql
spec:models:
script:
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:models
tags:
- ruby
- mysql
spec:lib:
script:
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:lib
tags:
- ruby
- mysql
spec:services:
script:
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:services
tags:
- ruby
- mysql
spec:benchmark: spec:benchmark:
script: script:
- RAILS_ENV=test bundle exec rake spec:benchmark - RAILS_ENV=test bundle exec rake spec:benchmark
...@@ -39,9 +60,16 @@ spec:other: ...@@ -39,9 +60,16 @@ spec:other:
- ruby - ruby
- mysql - mysql
spinach:project: spinach:project:half:
script:
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:half
tags:
- ruby
- mysql
spinach:project:rest:
script: script:
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:rest
tags: tags:
- ruby - ruby
- mysql - mysql
......
@project_commits
Feature: Project Commits Branches Feature: Project Commits Branches
Background: Background:
Given I sign in as a user Given I sign in as a user
......
@project_commits
Feature: Project Commits Comments Feature: Project Commits Comments
Background: Background:
Given I sign in as a user Given I sign in as a user
......
@project_commits
Feature: Project Commits Feature: Project Commits
Background: Background:
Given I sign in as a user Given I sign in as a user
......
@project_commits
Feature: Project Commits Diff Comments Feature: Project Commits Diff Comments
Background: Background:
Given I sign in as a user Given I sign in as a user
......
@project_commits
Feature: Project Commits Tags Feature: Project Commits Tags
Background: Background:
Given I sign in as a user Given I sign in as a user
......
@project_commits
Feature: Project Commits User Lookup Feature: Project Commits User Lookup
Background: Background:
Given I sign in as a user Given I sign in as a user
......
@project_issues
Feature: Award Emoji Feature: Award Emoji
Background: Background:
Given I sign in as a user Given I sign in as a user
......
@project_issues
Feature: Project Issues Filter Labels Feature: Project Issues Filter Labels
Background: Background:
Given I sign in as a user Given I sign in as a user
......
@project_issues
Feature: Project Issues Feature: Project Issues
Background: Background:
Given I sign in as a user Given I sign in as a user
...@@ -196,4 +197,3 @@ Feature: Project Issues ...@@ -196,4 +197,3 @@ Feature: Project Issues
And I should not see labels field And I should not see labels field
And I submit new issue "500 error on profile" And I submit new issue "500 error on profile"
Then I should see issue "500 error on profile" Then I should see issue "500 error on profile"
@project_issues
Feature: Project Issues Labels Feature: Project Issues Labels
Background: Background:
Given I sign in as a user Given I sign in as a user
......
@project_issues
Feature: Project Issues Milestones Feature: Project Issues Milestones
Background: Background:
Given I sign in as a user Given I sign in as a user
......
@project_merge_requests
Feature: Project Merge Requests Feature: Project Merge Requests
Background: Background:
Given I sign in as a user Given I sign in as a user
......
@project_merge_requests
Feature: Project Merge Requests Acceptance Feature: Project Merge Requests Acceptance
Background: Background:
Given There is an open Merge Request Given There is an open Merge Request
......
...@@ -19,6 +19,33 @@ namespace :spec do ...@@ -19,6 +19,33 @@ namespace :spec do
run_commands(cmds) run_commands(cmds)
end end
desc 'GitLab | Rspec | Run model specs'
task :models do
cmds = [
%W(rake gitlab:setup),
%W(rspec spec --tag @models)
]
run_commands(cmds)
end
desc 'GitLab | Rspec | Run service specs'
task :services do
cmds = [
%W(rake gitlab:setup),
%W(rspec spec --tag @services)
]
run_commands(cmds)
end
desc 'GitLab | Rspec | Run lib specs'
task :lib do
cmds = [
%W(rake gitlab:setup),
%W(rspec spec --tag @lib)
]
run_commands(cmds)
end
desc 'GitLab | Rspec | Run benchmark specs' desc 'GitLab | Rspec | Run benchmark specs'
task :benchmark do task :benchmark do
cmds = [ cmds = [
...@@ -32,7 +59,7 @@ namespace :spec do ...@@ -32,7 +59,7 @@ namespace :spec do
task :other do task :other do
cmds = [ cmds = [
%W(rake gitlab:setup), %W(rake gitlab:setup),
%W(rspec spec --tag ~@api --tag ~@feature --tag ~@benchmark) %W(rspec spec --tag ~@api --tag ~@feature --tag ~@models --tag ~@lib --tag ~@services --tag ~@benchmark)
] ]
run_commands(cmds) run_commands(cmds)
end end
......
Rake::Task["spinach"].clear if Rake::Task.task_defined?('spinach') Rake::Task["spinach"].clear if Rake::Task.task_defined?('spinach')
namespace :spinach do namespace :spinach do
namespace :project do
desc "GitLab | Spinach | Run project commits, issues and merge requests spinach features"
task :half do
cmds = [
%W(rake gitlab:setup),
%W(spinach --tags @project_commits,@project_issues,@project_merge_requests),
]
run_commands(cmds)
end
desc "GitLab | Spinach | Run remaining project spinach features"
task :rest do
cmds = [
%W(rake gitlab:setup),
%W(spinach --tags ~@admin,~@dashboard,~@profile,~@public,~@snippets,~@project_commits,~@project_issues,~@project_merge_requests),
]
run_commands(cmds)
end
end
desc "GitLab | Spinach | Run project spinach features" desc "GitLab | Spinach | Run project spinach features"
task :project do task :project do
cmds = [ cmds = [
%W(rake gitlab:setup), %W(rake gitlab:setup),
%W(spinach --tags ~@admin,~@dashboard,~@profile,~@public,~@snippets,~@commits), %W(spinach --tags ~@admin,~@dashboard,~@profile,~@public,~@snippets),
] ]
run_commands(cmds) run_commands(cmds)
end end
...@@ -14,7 +34,7 @@ namespace :spinach do ...@@ -14,7 +34,7 @@ namespace :spinach do
task :other do task :other do
cmds = [ cmds = [
%W(rake gitlab:setup), %W(rake gitlab:setup),
%W(spinach --tags @admin,@dashboard,@profile,@public,@snippets,@commits), %W(spinach --tags @admin,@dashboard,@profile,@public,@snippets),
] ]
run_commands(cmds) run_commands(cmds)
end end
...@@ -33,4 +53,4 @@ def run_commands(cmds) ...@@ -33,4 +53,4 @@ def run_commands(cmds)
cmds.each do |cmd| cmds.each do |cmd|
system({'RAILS_ENV' => 'test', 'force' => 'yes'}, *cmd) or raise("#{cmd} failed!") system({'RAILS_ENV' => 'test', 'force' => 'yes'}, *cmd) or raise("#{cmd} failed!")
end end
end end
\ No newline at end of file
require 'spec_helper' require 'spec_helper'
describe Ci::Ansi2html do describe Ci::Ansi2html, lib: true do
subject { Ci::Ansi2html } subject { Ci::Ansi2html }
it "prints non-ansi as-is" do it "prints non-ansi as-is" do
......
require 'spec_helper' require 'spec_helper'
describe "Charts" do describe Ci::Charts, lib: true do
context "build_times" do context "build_times" do
before do before do
......
require 'spec_helper' require 'spec_helper'
module Ci module Ci
describe GitlabCiYamlProcessor do describe GitlabCiYamlProcessor, lib: true do
let(:path) { 'path' } let(:path) { 'path' }
describe "#builds_for_ref" do describe "#builds_for_ref" do
......
require 'spec_helper' require 'spec_helper'
describe DisableEmailInterceptor do describe DisableEmailInterceptor, lib: true do
before do before do
ActionMailer::Base.register_interceptor(DisableEmailInterceptor) ActionMailer::Base.register_interceptor(DisableEmailInterceptor)
end end
......
require 'spec_helper' require 'spec_helper'
describe ExtractsPath do describe ExtractsPath, lib: true do
include ExtractsPath include ExtractsPath
include RepoHelpers include RepoHelpers
include Gitlab::Application.routes.url_helpers include Gitlab::Application.routes.url_helpers
......
require 'spec_helper' require 'spec_helper'
describe 'Gitlab::FileSizeValidatorSpec' do describe FileSizeValidator, lib: true do
let(:validator) { FileSizeValidator.new(options) } let(:validator) { FileSizeValidator.new(options) }
let(:attachment) { AttachmentUploader.new } let(:attachment) { AttachmentUploader.new }
let(:note) { create(:note) } let(:note) { create(:note) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::GitRefValidator do describe Gitlab::GitRefValidator, lib: true do
it { expect(Gitlab::GitRefValidator.validate('feature/new')).to be_truthy } it { expect(Gitlab::GitRefValidator.validate('feature/new')).to be_truthy }
it { expect(Gitlab::GitRefValidator.validate('implement_@all')).to be_truthy } it { expect(Gitlab::GitRefValidator.validate('implement_@all')).to be_truthy }
it { expect(Gitlab::GitRefValidator.validate('my_new_feature')).to be_truthy } it { expect(Gitlab::GitRefValidator.validate('my_new_feature')).to be_truthy }
......
...@@ -2,7 +2,7 @@ require 'spec_helper' ...@@ -2,7 +2,7 @@ require 'spec_helper'
require 'nokogiri' require 'nokogiri'
module Gitlab module Gitlab
describe Asciidoc do describe Asciidoc, lib: true do
let(:input) { '<b>ascii</b>' } let(:input) { '<b>ascii</b>' }
let(:context) { {} } let(:context) { {} }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Auth do describe Gitlab::Auth, lib: true do
let(:gl_auth) { Gitlab::Auth.new } let(:gl_auth) { Gitlab::Auth.new }
describe :find do describe :find do
......
require "spec_helper" require "spec_helper"
describe Grack::Auth do describe Grack::Auth, lib: true do
let(:user) { create(:user) } let(:user) { create(:user) }
let(:project) { create(:project) } let(:project) { create(:project) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Shell do describe Gitlab::Shell, lib: true do
let(:project) { double('Project', id: 7, path: 'diaspora') } let(:project) { double('Project', id: 7, path: 'diaspora') }
let(:gitlab_shell) { Gitlab::Shell.new } let(:gitlab_shell) { Gitlab::Shell.new }
...@@ -16,7 +16,7 @@ describe Gitlab::Shell do ...@@ -16,7 +16,7 @@ describe Gitlab::Shell do
it { expect(gitlab_shell.url_to_repo('diaspora')).to eq(Gitlab.config.gitlab_shell.ssh_path_prefix + "diaspora.git") } it { expect(gitlab_shell.url_to_repo('diaspora')).to eq(Gitlab.config.gitlab_shell.ssh_path_prefix + "diaspora.git") }
describe Gitlab::Shell::KeyAdder do describe Gitlab::Shell::KeyAdder, lib: true do
describe '#add_key' do describe '#add_key' do
it 'normalizes space characters in the key' do it 'normalizes space characters in the key' do
io = spy io = spy
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::BitbucketImport::Client do describe Gitlab::BitbucketImport::Client, lib: true do
let(:token) { '123456' } let(:token) { '123456' }
let(:secret) { 'secret' } let(:secret) { 'secret' }
let(:client) { Gitlab::BitbucketImport::Client.new(token, secret) } let(:client) { Gitlab::BitbucketImport::Client.new(token, secret) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::BitbucketImport::ProjectCreator do describe Gitlab::BitbucketImport::ProjectCreator, lib: true do
let(:user) { create(:user) } let(:user) { create(:user) }
let(:repo) do let(:repo) do
{ {
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::ClosingIssueExtractor do describe Gitlab::ClosingIssueExtractor, lib: true do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:project2) { create(:project) } let(:project2) { create(:project) }
let(:issue) { create(:issue, project: project) } let(:issue) { create(:issue, project: project) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::ColorSchemes do describe Gitlab::ColorSchemes, lib: true do
describe '.body_classes' do describe '.body_classes' do
it 'returns a space-separated list of class names' do it 'returns a space-separated list of class names' do
css = described_class.body_classes css = described_class.body_classes
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Database do describe Gitlab::Database, lib: true do
# These are just simple smoke tests to check if the methods work (regardless # These are just simple smoke tests to check if the methods work (regardless
# of what they may return). # of what they may return).
describe '.mysql?' do describe '.mysql?' do
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Diff::File do describe Gitlab::Diff::File, lib: true do
include RepoHelpers include RepoHelpers
let(:project) { create(:project) } let(:project) { create(:project) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Diff::Parser do describe Gitlab::Diff::Parser, lib: true do
include RepoHelpers include RepoHelpers
let(:project) { create(:project) } let(:project) { create(:project) }
......
require "spec_helper" require "spec_helper"
describe Gitlab::Email::AttachmentUploader do describe Gitlab::Email::AttachmentUploader, lib: true do
describe "#execute" do describe "#execute" do
let(:project) { build(:project) } let(:project) { build(:project) }
let(:message_raw) { fixture_file("emails/attachment.eml") } let(:message_raw) { fixture_file("emails/attachment.eml") }
......
require "spec_helper" require "spec_helper"
describe Gitlab::Email::Receiver do describe Gitlab::Email::Receiver, lib: true do
before do before do
stub_incoming_email_setting(enabled: true, address: "reply+%{key}@appmail.adventuretime.ooo") stub_incoming_email_setting(enabled: true, address: "reply+%{key}@appmail.adventuretime.ooo")
end end
......
require "spec_helper" require "spec_helper"
# Inspired in great part by Discourse's Email::Receiver # Inspired in great part by Discourse's Email::Receiver
describe Gitlab::Email::ReplyParser do describe Gitlab::Email::ReplyParser, lib: true do
describe '#execute' do describe '#execute' do
def test_parse_body(mail_string) def test_parse_body(mail_string)
described_class.new(Mail::Message.new(mail_string)).execute described_class.new(Mail::Message.new(mail_string)).execute
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::GitAccess do describe Gitlab::GitAccess, lib: true do
let(:access) { Gitlab::GitAccess.new(actor, project) } let(:access) { Gitlab::GitAccess.new(actor, project) }
let(:project) { create(:project) } let(:project) { create(:project) }
let(:user) { create(:user) } let(:user) { create(:user) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::GitAccessWiki do describe Gitlab::GitAccessWiki, lib: true do
let(:access) { Gitlab::GitAccessWiki.new(user, project) } let(:access) { Gitlab::GitAccessWiki.new(user, project) }
let(:project) { create(:project) } let(:project) { create(:project) }
let(:user) { create(:user) } let(:user) { create(:user) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::GithubImport::Client do describe Gitlab::GithubImport::Client, lib: true do
let(:token) { '123456' } let(:token) { '123456' }
let(:client) { Gitlab::GithubImport::Client.new(token) } let(:client) { Gitlab::GithubImport::Client.new(token) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::GithubImport::ProjectCreator do describe Gitlab::GithubImport::ProjectCreator, lib: true do
let(:user) { create(:user) } let(:user) { create(:user) }
let(:repo) do let(:repo) do
OpenStruct.new( OpenStruct.new(
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::GitlabImport::Client do describe Gitlab::GitlabImport::Client, lib: true do
let(:token) { '123456' } let(:token) { '123456' }
let(:client) { Gitlab::GitlabImport::Client.new(token) } let(:client) { Gitlab::GitlabImport::Client.new(token) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::GitlabImport::ProjectCreator do describe Gitlab::GitlabImport::ProjectCreator, lib: true do
let(:user) { create(:user) } let(:user) { create(:user) }
let(:repo) do let(:repo) do
{ {
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::GitoriousImport::ProjectCreator do describe Gitlab::GitoriousImport::ProjectCreator, lib: true do
let(:user) { create(:user) } let(:user) { create(:user) }
let(:repo) { Gitlab::GitoriousImport::Repository.new('foo/bar-baz-qux') } let(:repo) { Gitlab::GitoriousImport::Repository.new('foo/bar-baz-qux') }
let(:namespace){ create(:group, owner: user) } let(:namespace){ create(:group, owner: user) }
......
require "spec_helper" require "spec_helper"
describe Gitlab::GoogleCodeImport::Client do describe Gitlab::GoogleCodeImport::Client, lib: true do
let(:raw_data) { JSON.parse(fixture_file("GoogleCodeProjectHosting.json")) } let(:raw_data) { JSON.parse(fixture_file("GoogleCodeProjectHosting.json")) }
subject { described_class.new(raw_data) } subject { described_class.new(raw_data) }
......
require "spec_helper" require "spec_helper"
describe Gitlab::GoogleCodeImport::Importer do describe Gitlab::GoogleCodeImport::Importer, lib: true do
let(:mapped_user) { create(:user, username: "thilo123") } let(:mapped_user) { create(:user, username: "thilo123") }
let(:raw_data) { JSON.parse(fixture_file("GoogleCodeProjectHosting.json")) } let(:raw_data) { JSON.parse(fixture_file("GoogleCodeProjectHosting.json")) }
let(:client) { Gitlab::GoogleCodeImport::Client.new(raw_data) } let(:client) { Gitlab::GoogleCodeImport::Client.new(raw_data) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::GoogleCodeImport::ProjectCreator do describe Gitlab::GoogleCodeImport::ProjectCreator, lib: true do
let(:user) { create(:user) } let(:user) { create(:user) }
let(:repo) do let(:repo) do
Gitlab::GoogleCodeImport::Repository.new( Gitlab::GoogleCodeImport::Repository.new(
......
require "spec_helper" require "spec_helper"
describe Gitlab::IncomingEmail do describe Gitlab::IncomingEmail, lib: true do
describe "self.enabled?" do describe "self.enabled?" do
context "when reply by email is enabled" do context "when reply by email is enabled" do
before do before do
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::InlineDiff do describe Gitlab::InlineDiff, lib: true do
describe '#processing' do describe '#processing' do
let(:diff) do let(:diff) do
<<eos <<eos
......
require "spec_helper" require "spec_helper"
describe Gitlab::KeyFingerprint do describe Gitlab::KeyFingerprint, lib: true do
let(:key) { "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=" } let(:key) { "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=" }
let(:fingerprint) { "3f:a2:ee:de:b5:de:53:c3:aa:2f:9c:45:24:4c:47:7b" } let(:fingerprint) { "3f:a2:ee:de:b5:de:53:c3:aa:2f:9c:45:24:4c:47:7b" }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::LDAP::Access do describe Gitlab::LDAP::Access, lib: true do
let(:access) { Gitlab::LDAP::Access.new user } let(:access) { Gitlab::LDAP::Access.new user }
let(:user) { create(:omniauth_user) } let(:user) { create(:omniauth_user) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::LDAP::Adapter do describe Gitlab::LDAP::Adapter, lib: true do
let(:adapter) { Gitlab::LDAP::Adapter.new 'ldapmain' } let(:adapter) { Gitlab::LDAP::Adapter.new 'ldapmain' }
describe '#dn_matches_filter?' do describe '#dn_matches_filter?' do
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::LDAP::AuthHash do describe Gitlab::LDAP::AuthHash, lib: true do
let(:auth_hash) do let(:auth_hash) do
Gitlab::LDAP::AuthHash.new( Gitlab::LDAP::AuthHash.new(
OmniAuth::AuthHash.new( OmniAuth::AuthHash.new(
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::LDAP::Authentication do describe Gitlab::LDAP::Authentication, lib: true do
let(:user) { create(:omniauth_user, extern_uid: dn) } let(:user) { create(:omniauth_user, extern_uid: dn) }
let(:dn) { 'uid=john,ou=people,dc=example,dc=com' } let(:dn) { 'uid=john,ou=people,dc=example,dc=com' }
let(:login) { 'john' } let(:login) { 'john' }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::LDAP::Config do describe Gitlab::LDAP::Config, lib: true do
let(:config) { Gitlab::LDAP::Config.new provider } let(:config) { Gitlab::LDAP::Config.new provider }
let(:provider) { 'ldapmain' } let(:provider) { 'ldapmain' }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::LDAP::User do describe Gitlab::LDAP::User, lib: true do
let(:ldap_user) { Gitlab::LDAP::User.new(auth_hash) } let(:ldap_user) { Gitlab::LDAP::User.new(auth_hash) }
let(:gl_user) { ldap_user.gl_user } let(:gl_user) { ldap_user.gl_user }
let(:info) do let(:info) do
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Lfs::Router do describe Gitlab::Lfs::Router, lib: true do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:public_project) { create(:project, :public) } let(:public_project) { create(:project, :public) }
let(:forked_project) { fork_project(public_project, user) } let(:forked_project) { fork_project(public_project, user) }
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe AutolinkFilter do describe AutolinkFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
let(:link) { 'http://about.gitlab.com/' } let(:link) { 'http://about.gitlab.com/' }
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe CommitRangeReferenceFilter do describe CommitRangeReferenceFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
let(:project) { create(:project, :public) } let(:project) { create(:project, :public) }
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe CommitReferenceFilter do describe CommitReferenceFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
let(:project) { create(:project, :public) } let(:project) { create(:project, :public) }
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe CrossProjectReference do describe CrossProjectReference, lib: true do
include described_class include described_class
describe '#project_from_ref' do describe '#project_from_ref' do
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe EmojiFilter do describe EmojiFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
before do before do
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe ExternalIssueReferenceFilter do describe ExternalIssueReferenceFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
def helper def helper
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe ExternalLinkFilter do describe ExternalLinkFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
it 'ignores elements without an href attribute' do it 'ignores elements without an href attribute' do
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe IssueReferenceFilter do describe IssueReferenceFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
def helper def helper
......
...@@ -2,7 +2,7 @@ require 'spec_helper' ...@@ -2,7 +2,7 @@ require 'spec_helper'
require 'html/pipeline' require 'html/pipeline'
module Gitlab::Markdown module Gitlab::Markdown
describe LabelReferenceFilter do describe LabelReferenceFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
let(:project) { create(:empty_project, :public) } let(:project) { create(:empty_project, :public) }
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe MergeRequestReferenceFilter do describe MergeRequestReferenceFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
let(:project) { create(:project, :public) } let(:project) { create(:project, :public) }
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe RedactorFilter do describe RedactorFilter, lib: true do
include ActionView::Helpers::UrlHelper include ActionView::Helpers::UrlHelper
include FilterSpecHelper include FilterSpecHelper
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe ReferenceGathererFilter do describe ReferenceGathererFilter, lib: true do
include ActionView::Helpers::UrlHelper include ActionView::Helpers::UrlHelper
include FilterSpecHelper include FilterSpecHelper
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe RelativeLinkFilter do describe RelativeLinkFilter, lib: true do
def filter(doc, contexts = {}) def filter(doc, contexts = {})
contexts.reverse_merge!({ contexts.reverse_merge!({
commit: project.commit, commit: project.commit,
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe SanitizationFilter do describe SanitizationFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
describe 'default whitelist' do describe 'default whitelist' do
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe SnippetReferenceFilter do describe SnippetReferenceFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
let(:project) { create(:empty_project, :public) } let(:project) { create(:empty_project, :public) }
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe SyntaxHighlightFilter do describe SyntaxHighlightFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
it 'highlights valid code blocks' do it 'highlights valid code blocks' do
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe TableOfContentsFilter do describe TableOfContentsFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
def header(level, text) def header(level, text)
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe TaskListFilter do describe TaskListFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
it 'does not apply `task-list` class to non-task lists' do it 'does not apply `task-list` class to non-task lists' do
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe UploadLinkFilter do describe UploadLinkFilter, lib: true do
def filter(doc, contexts = {}) def filter(doc, contexts = {})
contexts.reverse_merge!({ contexts.reverse_merge!({
project: project project: project
......
require 'spec_helper' require 'spec_helper'
module Gitlab::Markdown module Gitlab::Markdown
describe UserReferenceFilter do describe UserReferenceFilter, lib: true do
include FilterSpecHelper include FilterSpecHelper
let(:project) { create(:empty_project, :public) } let(:project) { create(:empty_project, :public) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::MarkupHelper do describe Gitlab::MarkupHelper, lib: true do
describe '#markup?' do describe '#markup?' do
%w(textile rdoc org creole wiki %w(textile rdoc org creole wiki
mediawiki rst adoc ad asciidoc mdown md markdown).each do |type| mediawiki rst adoc ad asciidoc mdown md markdown).each do |type|
......
require 'spec_helper' require 'spec_helper'
describe 'Gitlab::NoteDataBuilder' do describe 'Gitlab::NoteDataBuilder', lib: true do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:user) { create(:user) } let(:user) { create(:user) }
let(:data) { Gitlab::NoteDataBuilder.build(note, user) } let(:data) { Gitlab::NoteDataBuilder.build(note, user) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::OAuth::AuthHash do describe Gitlab::OAuth::AuthHash, lib: true do
let(:auth_hash) do let(:auth_hash) do
Gitlab::OAuth::AuthHash.new( Gitlab::OAuth::AuthHash.new(
OmniAuth::AuthHash.new( OmniAuth::AuthHash.new(
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::OAuth::User do describe Gitlab::OAuth::User, lib: true do
let(:oauth_user) { Gitlab::OAuth::User.new(auth_hash) } let(:oauth_user) { Gitlab::OAuth::User.new(auth_hash) }
let(:gl_user) { oauth_user.gl_user } let(:gl_user) { oauth_user.gl_user }
let(:uid) { 'my-uid' } let(:uid) { 'my-uid' }
......
require 'spec_helper' require 'spec_helper'
describe 'Gitlab::Popen', no_db: true do describe 'Gitlab::Popen', lib: true, no_db: true do
let(:path) { Rails.root.join('tmp').to_s } let(:path) { Rails.root.join('tmp').to_s }
before do before do
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::ProjectSearchResults do describe Gitlab::ProjectSearchResults, lib: true do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:query) { 'hello world' } let(:query) { 'hello world' }
......
require 'spec_helper' require 'spec_helper'
describe 'Gitlab::PushDataBuilder' do describe 'Gitlab::PushDataBuilder', lib: true do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:user) { create(:user) } let(:user) { create(:user) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::ReferenceExtractor do describe Gitlab::ReferenceExtractor, lib: true do
let(:project) { create(:project) } let(:project) { create(:project) }
subject { Gitlab::ReferenceExtractor.new(project, project.creator) } subject { Gitlab::ReferenceExtractor.new(project, project.creator) }
......
# coding: utf-8 # coding: utf-8
require 'spec_helper' require 'spec_helper'
describe Gitlab::Regex do describe Gitlab::Regex, lib: true do
describe 'project path regex' do describe 'project path regex' do
it { expect('gitlab-ce').to match(Gitlab::Regex.project_path_regex) } it { expect('gitlab-ce').to match(Gitlab::Regex.project_path_regex) }
it { expect('gitlab_git').to match(Gitlab::Regex.project_path_regex) } it { expect('gitlab_git').to match(Gitlab::Regex.project_path_regex) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Sherlock::Collection do describe Gitlab::Sherlock::Collection, lib: true do
let(:collection) { described_class.new } let(:collection) { described_class.new }
let(:transaction) do let(:transaction) do
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Sherlock::FileSample do describe Gitlab::Sherlock::FileSample, lib: true do
let(:sample) { described_class.new(__FILE__, [], 150.4, 2) } let(:sample) { described_class.new(__FILE__, [], 150.4, 2) }
describe '#id' do describe '#id' do
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Sherlock::LineProfiler do describe Gitlab::Sherlock::LineProfiler, lib: true do
let(:profiler) { described_class.new } let(:profiler) { described_class.new }
describe '#profile' do describe '#profile' do
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Sherlock::LineSample do describe Gitlab::Sherlock::LineSample, lib: true do
let(:sample) { described_class.new(150.0, 4) } let(:sample) { described_class.new(150.0, 4) }
describe '#duration' do describe '#duration' do
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Sherlock::Location do describe Gitlab::Sherlock::Location, lib: true do
let(:location) { described_class.new(__FILE__, 1) } let(:location) { described_class.new(__FILE__, 1) }
describe 'from_ruby_location' do describe 'from_ruby_location' do
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Sherlock::Middleware do describe Gitlab::Sherlock::Middleware, lib: true do
let(:app) { double(:app) } let(:app) { double(:app) }
let(:middleware) { described_class.new(app) } let(:middleware) { described_class.new(app) }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Sherlock::Query do describe Gitlab::Sherlock::Query, lib: true do
let(:started_at) { Time.utc(2015, 1, 1) } let(:started_at) { Time.utc(2015, 1, 1) }
let(:finished_at) { started_at + 5 } let(:finished_at) { started_at + 5 }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Sherlock::Transaction do describe Gitlab::Sherlock::Transaction, lib: true do
let(:transaction) { described_class.new('POST', '/cat_pictures') } let(:transaction) { described_class.new('POST', '/cat_pictures') }
describe '#id' do describe '#id' do
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::SQL::Union do describe Gitlab::SQL::Union, lib: true do
describe '#to_sql' do describe '#to_sql' do
it 'returns a String joining relations together using a UNION' do it 'returns a String joining relations together using a UNION' do
rel1 = User.where(email: 'alice@example.com') rel1 = User.where(email: 'alice@example.com')
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Themes do describe Gitlab::Themes, lib: true do
describe '.body_classes' do describe '.body_classes' do
it 'returns a space-separated list of class names' do it 'returns a space-separated list of class names' do
css = described_class.body_classes css = described_class.body_classes
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Upgrader do describe Gitlab::Upgrader, lib: true do
let(:upgrader) { Gitlab::Upgrader.new } let(:upgrader) { Gitlab::Upgrader.new }
let(:current_version) { Gitlab::VERSION } let(:current_version) { Gitlab::VERSION }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::UploadsTransfer do describe Gitlab::UploadsTransfer, lib: true do
before do before do
@root_dir = File.join(Rails.root, "public", "uploads") @root_dir = File.join(Rails.root, "public", "uploads")
@upload_transfer = Gitlab::UploadsTransfer.new @upload_transfer = Gitlab::UploadsTransfer.new
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::UrlBuilder do describe Gitlab::UrlBuilder, lib: true do
describe 'When asking for an issue' do describe 'When asking for an issue' do
it 'returns the issue url' do it 'returns the issue url' do
issue = create(:issue) issue = create(:issue)
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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