Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-27 06:08:49 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-27 06:08:49 +0300
commit996c6bf06f602ada62e3f754c121c17051072892 (patch)
treec7568793468de0faef693795e00f34c07da8e793 /spec
parent0a0e82d1440b06650e5fc524168b1f50a8feec68 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r--spec/frontend/lib/utils/text_utility_spec.js23
-rw-r--r--spec/frontend/releases/components/release_block_header_spec.js4
-rw-r--r--spec/frontend/releases/components/release_block_spec.js6
-rw-r--r--spec/graphql/resolvers/issues_resolver_spec.rb32
-rw-r--r--spec/models/project_spec.rb12
5 files changed, 58 insertions, 19 deletions
diff --git a/spec/frontend/lib/utils/text_utility_spec.js b/spec/frontend/lib/utils/text_utility_spec.js
index 803b3629524..dc8f6c64136 100644
--- a/spec/frontend/lib/utils/text_utility_spec.js
+++ b/spec/frontend/lib/utils/text_utility_spec.js
@@ -94,8 +94,27 @@ describe('text_utility', () => {
});
describe('convertToCamelCase', () => {
- it('converts snake_case string to camelCase string', () => {
- expect(textUtils.convertToCamelCase('snake_case')).toBe('snakeCase');
+ it.each`
+ txt | result
+ ${'a_snake_cased_string'} | ${'aSnakeCasedString'}
+ ${'_leading_underscore'} | ${'_leadingUnderscore'}
+ ${'__leading_underscores'} | ${'__leadingUnderscores'}
+ ${'trailing_underscore_'} | ${'trailingUnderscore_'}
+ ${'trailing_underscores__'} | ${'trailingUnderscores__'}
+ `('converts string "$txt" to "$result"', ({ txt, result }) => {
+ expect(textUtils.convertToCamelCase(txt)).toBe(result);
+ });
+
+ it.each`
+ txt
+ ${'__withoutMiddleUnderscores__'}
+ ${''}
+ ${'with spaces'}
+ ${'with\nnew\r\nlines'}
+ ${'_'}
+ ${'___'}
+ `('does not modify string "$txt"', ({ txt }) => {
+ expect(textUtils.convertToCamelCase(txt)).toBe(txt);
});
});
diff --git a/spec/frontend/releases/components/release_block_header_spec.js b/spec/frontend/releases/components/release_block_header_spec.js
index 78adad13f69..44f6f63fa79 100644
--- a/spec/frontend/releases/components/release_block_header_spec.js
+++ b/spec/frontend/releases/components/release_block_header_spec.js
@@ -37,13 +37,13 @@ describe('Release block header', () => {
const link = findHeaderLink();
expect(link.text()).toBe(release.name);
- expect(link.attributes('href')).toBe(release.Links.self);
+ expect(link.attributes('href')).toBe(release._links.self);
});
});
describe('when _links.self is missing', () => {
beforeEach(() => {
- factory({ Links: { self: null } });
+ factory({ _links: { self: null } });
});
it('renders the title as text', () => {
diff --git a/spec/frontend/releases/components/release_block_spec.js b/spec/frontend/releases/components/release_block_spec.js
index 5d365b77560..ff88e3193bc 100644
--- a/spec/frontend/releases/components/release_block_spec.js
+++ b/spec/frontend/releases/components/release_block_spec.js
@@ -63,7 +63,7 @@ describe('Release block', () => {
it('renders an edit button that links to the "Edit release" page', () => {
expect(editButton().exists()).toBe(true);
- expect(editButton().attributes('href')).toBe(release.Links.editUrl);
+ expect(editButton().attributes('href')).toBe(release._links.editUrl);
});
it('renders release name', () => {
@@ -150,8 +150,8 @@ describe('Release block', () => {
});
});
- it("does not render an edit button if release.Links.editUrl isn't a string", () => {
- delete release.Links;
+ it("does not render an edit button if release._links.editUrl isn't a string", () => {
+ delete release._links;
return factory(release).then(() => {
expect(editButton().exists()).toBe(false);
diff --git a/spec/graphql/resolvers/issues_resolver_spec.rb b/spec/graphql/resolvers/issues_resolver_spec.rb
index 3fbb7280465..7cfef9b4cc7 100644
--- a/spec/graphql/resolvers/issues_resolver_spec.rb
+++ b/spec/graphql/resolvers/issues_resolver_spec.rb
@@ -8,11 +8,13 @@ describe Resolvers::IssuesResolver do
let(:current_user) { create(:user) }
context "with a project" do
- let_it_be(:project) { create(:project) }
- let_it_be(:issue1) { create(:issue, project: project, state: :opened, created_at: 3.hours.ago, updated_at: 3.hours.ago) }
- let_it_be(:issue2) { create(:issue, project: project, state: :closed, title: 'foo', created_at: 1.hour.ago, updated_at: 1.hour.ago, closed_at: 1.hour.ago) }
- let_it_be(:label1) { create(:label, project: project) }
- let_it_be(:label2) { create(:label, project: project) }
+ let_it_be(:project) { create(:project) }
+ let_it_be(:milestone) { create(:milestone, project: project) }
+ let_it_be(:assignee) { create(:user) }
+ let_it_be(:issue1) { create(:issue, project: project, state: :opened, created_at: 3.hours.ago, updated_at: 3.hours.ago, milestone: milestone) }
+ let_it_be(:issue2) { create(:issue, project: project, state: :closed, title: 'foo', created_at: 1.hour.ago, updated_at: 1.hour.ago, closed_at: 1.hour.ago, assignees: [assignee]) }
+ let_it_be(:label1) { create(:label, project: project) }
+ let_it_be(:label2) { create(:label, project: project) }
before do
project.add_developer(current_user)
@@ -31,6 +33,26 @@ describe Resolvers::IssuesResolver do
expect(resolve_issues(state: 'closed')).to contain_exactly(issue2)
end
+ it 'filters by milestone' do
+ expect(resolve_issues(milestone_title: milestone.title)).to contain_exactly(issue1)
+ end
+
+ it 'filters by assignee_username' do
+ expect(resolve_issues(assignee_username: assignee.username)).to contain_exactly(issue2)
+ end
+
+ it 'filters by assignee_id' do
+ expect(resolve_issues(assignee_id: assignee.id)).to contain_exactly(issue2)
+ end
+
+ it 'filters by any assignee' do
+ expect(resolve_issues(assignee_id: IssuableFinder::FILTER_ANY)).to contain_exactly(issue2)
+ end
+
+ it 'filters by no assignee' do
+ expect(resolve_issues(assignee_id: IssuableFinder::FILTER_NONE)).to contain_exactly(issue1)
+ end
+
it 'filters by labels' do
expect(resolve_issues(label_name: [label1.title])).to contain_exactly(issue1, issue2)
expect(resolve_issues(label_name: [label1.title, label2.title])).to contain_exactly(issue2)
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 6c90a1b5614..9b1c724f0c2 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -1791,21 +1791,19 @@ describe Project do
let(:project) { create(:project, :repository) }
let(:repo) { double(:repo, exists?: true) }
let(:wiki) { double(:wiki, exists?: true) }
- let(:design) { double(:wiki, exists?: false) }
it 'expires the caches of the repository and wiki' do
+ # In EE, there are design repositories as well
+ allow(Repository).to receive(:new).and_call_original
+
allow(Repository).to receive(:new)
- .with('foo', project)
+ .with('foo', project, shard: project.repository_storage)
.and_return(repo)
allow(Repository).to receive(:new)
- .with('foo.wiki', project)
+ .with('foo.wiki', project, shard: project.repository_storage, repo_type: Gitlab::GlRepository::WIKI)
.and_return(wiki)
- allow(Repository).to receive(:new)
- .with('foo.design', project)
- .and_return(design)
-
expect(repo).to receive(:before_delete)
expect(wiki).to receive(:before_delete)