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>2019-09-20 12:06:17 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-09-20 12:06:17 +0300
commit8ac91ecfd1bb445a0a1572b3c0885c41c9037e8a (patch)
tree4b8c9d2a99ad50ef84421b57758869863ea477a2 /spec
parent7e20809103e1f9c0c96c3a96705224c81bf448d5 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r--spec/features/clusters/cluster_detail_page_spec.rb44
-rw-r--r--spec/javascripts/blob/balsamiq/balsamiq_viewer_spec.js63
-rw-r--r--spec/presenters/project_presenter_spec.rb22
3 files changed, 84 insertions, 45 deletions
diff --git a/spec/features/clusters/cluster_detail_page_spec.rb b/spec/features/clusters/cluster_detail_page_spec.rb
index 683c57a97f8..927862689c1 100644
--- a/spec/features/clusters/cluster_detail_page_spec.rb
+++ b/spec/features/clusters/cluster_detail_page_spec.rb
@@ -13,7 +13,7 @@ describe 'Clusterable > Show page' do
sign_in(current_user)
end
- shared_examples 'editing domain' do
+ shared_examples 'show page' do
before do
clusterable.add_maintainer(current_user)
end
@@ -53,6 +53,12 @@ describe 'Clusterable > Show page' do
end
end
end
+
+ it 'does not show the environments tab' do
+ visit cluster_path
+
+ expect(page).not_to have_selector('.js-cluster-nav-environments', text: 'Environments')
+ end
end
shared_examples 'editing a GCP cluster' do
@@ -113,42 +119,30 @@ describe 'Clusterable > Show page' do
end
context 'when clusterable is a project' do
- it_behaves_like 'editing domain' do
- let(:clusterable) { create(:project) }
- let(:cluster) { create(:cluster, :provided_by_gcp, :project, projects: [clusterable]) }
- let(:cluster_path) { project_cluster_path(clusterable, cluster) }
- end
+ let(:clusterable) { create(:project) }
+ let(:cluster_path) { project_cluster_path(clusterable, cluster) }
+ let(:cluster) { create(:cluster, :provided_by_gcp, :project, projects: [clusterable]) }
- it_behaves_like 'editing a GCP cluster' do
- let(:clusterable) { create(:project) }
- let(:cluster) { create(:cluster, :provided_by_gcp, :project, projects: [clusterable]) }
- let(:cluster_path) { project_cluster_path(clusterable, cluster) }
- end
+ it_behaves_like 'show page'
+
+ it_behaves_like 'editing a GCP cluster'
it_behaves_like 'editing a user-provided cluster' do
- let(:clusterable) { create(:project) }
let(:cluster) { create(:cluster, :provided_by_user, :project, projects: [clusterable]) }
- let(:cluster_path) { project_cluster_path(clusterable, cluster) }
end
end
context 'when clusterable is a group' do
- it_behaves_like 'editing domain' do
- let(:clusterable) { create(:group) }
- let(:cluster) { create(:cluster, :provided_by_gcp, :group, groups: [clusterable]) }
- let(:cluster_path) { group_cluster_path(clusterable, cluster) }
- end
+ let(:clusterable) { create(:group) }
+ let(:cluster_path) { group_cluster_path(clusterable, cluster) }
+ let(:cluster) { create(:cluster, :provided_by_gcp, :group, groups: [clusterable]) }
- it_behaves_like 'editing a GCP cluster' do
- let(:clusterable) { create(:group) }
- let(:cluster) { create(:cluster, :provided_by_gcp, :group, groups: [clusterable]) }
- let(:cluster_path) { group_cluster_path(clusterable, cluster) }
- end
+ it_behaves_like 'show page'
+
+ it_behaves_like 'editing a GCP cluster'
it_behaves_like 'editing a user-provided cluster' do
- let(:clusterable) { create(:group) }
let(:cluster) { create(:cluster, :provided_by_user, :group, groups: [clusterable]) }
- let(:cluster_path) { group_cluster_path(clusterable, cluster) }
end
end
end
diff --git a/spec/javascripts/blob/balsamiq/balsamiq_viewer_spec.js b/spec/javascripts/blob/balsamiq/balsamiq_viewer_spec.js
index fd73fb4bfcc..d175c8ba853 100644
--- a/spec/javascripts/blob/balsamiq/balsamiq_viewer_spec.js
+++ b/spec/javascripts/blob/balsamiq/balsamiq_viewer_spec.js
@@ -1,8 +1,10 @@
import sqljs from 'sql.js';
+import axios from '~/lib/utils/axios_utils';
import BalsamiqViewer from '~/blob/balsamiq/balsamiq_viewer';
import ClassSpecHelper from '../../helpers/class_spec_helper';
describe('BalsamiqViewer', () => {
+ const mockArrayBuffer = new ArrayBuffer(10);
let balsamiqViewer;
let viewer;
@@ -19,44 +21,65 @@ describe('BalsamiqViewer', () => {
});
describe('loadFile', () => {
- let xhr;
- let loadFile;
+ let bv;
const endpoint = 'endpoint';
+ const requestSuccess = Promise.resolve({
+ data: mockArrayBuffer,
+ status: 200,
+ });
beforeEach(() => {
- xhr = jasmine.createSpyObj('xhr', ['open', 'send']);
+ viewer = {};
+ bv = new BalsamiqViewer(viewer);
+ });
- balsamiqViewer = jasmine.createSpyObj('balsamiqViewer', ['renderFile']);
+ it('should call `axios.get` on `endpoint` param with responseType set to `arraybuffer', () => {
+ spyOn(axios, 'get').and.returnValue(requestSuccess);
+ spyOn(bv, 'renderFile').and.stub();
- spyOn(window, 'XMLHttpRequest').and.returnValue(xhr);
+ bv.loadFile(endpoint);
- loadFile = BalsamiqViewer.prototype.loadFile.call(balsamiqViewer, endpoint);
+ expect(axios.get).toHaveBeenCalledWith(
+ endpoint,
+ jasmine.objectContaining({
+ responseType: 'arraybuffer',
+ }),
+ );
});
- it('should call .open', () => {
- expect(xhr.open).toHaveBeenCalledWith('GET', endpoint, true);
- });
+ it('should call `renderFile` on request success', done => {
+ spyOn(axios, 'get').and.returnValue(requestSuccess);
+ spyOn(bv, 'renderFile').and.callFake(() => {});
- it('should set .responseType', () => {
- expect(xhr.responseType).toBe('arraybuffer');
+ bv.loadFile(endpoint)
+ .then(() => {
+ expect(bv.renderFile).toHaveBeenCalledWith(mockArrayBuffer);
+ })
+ .then(done)
+ .catch(done.fail);
});
- it('should call .send', () => {
- expect(xhr.send).toHaveBeenCalled();
- });
+ it('should not call `renderFile` on request failure', done => {
+ spyOn(axios, 'get').and.returnValue(Promise.reject());
+ spyOn(bv, 'renderFile');
- it('should return a promise', () => {
- expect(loadFile).toEqual(jasmine.any(Promise));
+ bv.loadFile(endpoint)
+ .then(() => {
+ done.fail('Expected loadFile to throw error!');
+ })
+ .catch(() => {
+ expect(bv.renderFile).not.toHaveBeenCalled();
+ })
+ .then(done)
+ .catch(done.fail);
});
});
describe('renderFile', () => {
let container;
- let loadEvent;
let previews;
beforeEach(() => {
- loadEvent = { target: { response: {} } };
viewer = jasmine.createSpyObj('viewer', ['appendChild']);
previews = [document.createElement('ul'), document.createElement('ul')];
@@ -73,11 +96,11 @@ describe('BalsamiqViewer', () => {
container = containerElement;
});
- BalsamiqViewer.prototype.renderFile.call(balsamiqViewer, loadEvent);
+ BalsamiqViewer.prototype.renderFile.call(balsamiqViewer, mockArrayBuffer);
});
it('should call .initDatabase', () => {
- expect(balsamiqViewer.initDatabase).toHaveBeenCalledWith(loadEvent.target.response);
+ expect(balsamiqViewer.initDatabase).toHaveBeenCalledWith(mockArrayBuffer);
});
it('should call .getPreviews', () => {
diff --git a/spec/presenters/project_presenter_spec.rb b/spec/presenters/project_presenter_spec.rb
index 5bf80f6e318..2a00548c2c3 100644
--- a/spec/presenters/project_presenter_spec.rb
+++ b/spec/presenters/project_presenter_spec.rb
@@ -430,4 +430,26 @@ describe ProjectPresenter do
)
end
end
+
+ describe '#empty_repo_statistics_buttons' do
+ let(:project) { create(:project, :repository) }
+ let(:presenter) { described_class.new(project, current_user: user) }
+
+ subject(:empty_repo_statistics_buttons) { presenter.empty_repo_statistics_buttons }
+
+ before do
+ project.add_developer(user)
+ allow(project).to receive(:auto_devops_enabled?).and_return(false)
+ end
+
+ it 'orders the items correctly in an empty project' do
+ expect(empty_repo_statistics_buttons.map(&:label)).to start_with(
+ a_string_including('New'),
+ a_string_including('README'),
+ a_string_including('CHANGELOG'),
+ a_string_including('CONTRIBUTING'),
+ a_string_including('CI/CD')
+ )
+ end
+ end
end