summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/stylesheets/framework/markdown_area.scss11
-rw-r--r--changelogs/unreleased/fix-overflow-slash-commands.yml4
-rw-r--r--config/karma.config.js1
-rw-r--r--spec/features/boards/boards_spec.rb8
-rw-r--r--spec/features/milestones/milestones_spec.rb102
-rw-r--r--spec/javascripts/project_title_spec.js76
-rw-r--r--spec/javascripts/test_bundle.js8
7 files changed, 68 insertions, 142 deletions
diff --git a/app/assets/stylesheets/framework/markdown_area.scss b/app/assets/stylesheets/framework/markdown_area.scss
index 80691a234f8..b21bcc22a87 100644
--- a/app/assets/stylesheets/framework/markdown_area.scss
+++ b/app/assets/stylesheets/framework/markdown_area.scss
@@ -174,3 +174,14 @@
white-space: nowrap;
}
}
+
+@media(max-width: $screen-xs-max) {
+ .atwho-view-ul {
+ width: 350px;
+ }
+
+ .atwho-view ul li {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+}
diff --git a/changelogs/unreleased/fix-overflow-slash-commands.yml b/changelogs/unreleased/fix-overflow-slash-commands.yml
new file mode 100644
index 00000000000..98ec399e8cb
--- /dev/null
+++ b/changelogs/unreleased/fix-overflow-slash-commands.yml
@@ -0,0 +1,4 @@
+---
+title: Fixed overflow on mobile screens for the slash commands
+merge_request:
+author:
diff --git a/config/karma.config.js b/config/karma.config.js
index 978850e5d70..5911a9a7e10 100644
--- a/config/karma.config.js
+++ b/config/karma.config.js
@@ -54,6 +54,7 @@ module.exports = function(config) {
subdir: '.',
fixWebpackSourcePaths: true
};
+ karmaConfig.browserNoActivityTimeout = 60000; // 60 seconds
}
if (process.env.DEBUG) {
diff --git a/spec/features/boards/boards_spec.rb b/spec/features/boards/boards_spec.rb
index 968cc9d9c80..ce0702072eb 100644
--- a/spec/features/boards/boards_spec.rb
+++ b/spec/features/boards/boards_spec.rb
@@ -247,13 +247,13 @@ describe 'Issue Boards', feature: true, js: true do
end
it 'issue moves from closed' do
- drag(list_from_index: 3, list_to_index: 2)
+ drag(list_from_index: 2, list_to_index: 3)
wait_for_board_cards(2, 8)
- wait_for_board_cards(3, 3)
- wait_for_board_cards(4, 0)
+ wait_for_board_cards(3, 1)
+ wait_for_board_cards(4, 2)
- expect(find('.board:nth-child(3)')).to have_content(issue8.title)
+ expect(find('.board:nth-child(4)')).to have_content(issue8.title)
end
context 'issue card' do
diff --git a/spec/features/milestones/milestones_spec.rb b/spec/features/milestones/milestones_spec.rb
deleted file mode 100644
index 9e117c8ed9f..00000000000
--- a/spec/features/milestones/milestones_spec.rb
+++ /dev/null
@@ -1,102 +0,0 @@
-# require 'rails_helper'
-
-# describe 'Milestone draggable', feature: true, js: true do
-# include DragTo
-
-# let(:milestone) { create(:milestone, project: project, title: 8.14) }
-# let(:project) { create(:empty_project, :public) }
-# let(:user) { create(:user) }
-
-# context 'issues' do
-# let(:issue) { page.find_by_id('issues-list-unassigned').find('li') }
-# let(:issue_target) { page.find_by_id('issues-list-ongoing') }
-
-# it 'does not allow guest to drag issue' do
-# create_and_drag_issue
-
-# expect(issue_target).not_to have_selector('.issuable-row')
-# end
-
-# it 'does not allow authorized user to drag issue' do
-# login_as(user)
-# create_and_drag_issue
-
-# expect(issue_target).not_to have_selector('.issuable-row')
-# end
-
-# it 'allows author to drag issue' do
-# login_as(user)
-# create_and_drag_issue(author: user)
-
-# expect(issue_target).to have_selector('.issuable-row')
-# end
-
-# it 'allows admin to drag issue' do
-# login_as(:admin)
-
-# create_and_drag_issue
-
-# expect(issue_target).to have_selector('.issuable-row')
-# end
-# end
-
-# context 'merge requests' do
-# let(:merge_request) { page.find_by_id('merge_requests-list-unassigned').find('li') }
-# let(:merge_request_target) { page.find_by_id('merge_requests-list-ongoing') }
-
-# it 'does not allow guest to drag merge request' do
-# create_and_drag_merge_request
-
-# expect(merge_request_target).not_to have_selector('.issuable-row')
-# end
-
-# it 'does not allow authorized user to drag merge request' do
-# login_as(user)
-# create_and_drag_merge_request
-
-# expect(merge_request_target).not_to have_selector('.issuable-row')
-# end
-
-# it 'allows author to drag merge request' do
-# login_as(user)
-# create_and_drag_merge_request(author: user)
-
-# expect(merge_request_target).to have_selector('.issuable-row')
-# end
-
-# it 'allows admin to drag merge request' do
-# login_as(:admin)
-# create_and_drag_merge_request
-
-# expect(merge_request_target).to have_selector('.issuable-row')
-# end
-# end
-
-# def create_and_drag_issue(params = {})
-# create(:issue, params.merge(title: 'Foo', project: project, milestone: milestone))
-
-# visit namespace_project_milestone_path(project.namespace, project, milestone)
-# scroll_into_view('.milestone-content')
-# drag_to(selector: '.issues-sortable-list', list_to_index: 1)
-
-# wait_for_requests
-# end
-
-# def create_and_drag_merge_request(params = {})
-# create(:merge_request, params.merge(title: 'Foo', source_project: project, target_project: project, milestone: milestone))
-
-# visit namespace_project_milestone_path(project.namespace, project, milestone)
-# page.find("a[href='#tab-merge-requests']").click
-
-# wait_for_requests
-
-# scroll_into_view('.milestone-content')
-# drag_to(selector: '.merge_requests-sortable-list', list_to_index: 1)
-
-# wait_for_requests
-# end
-
-# def scroll_into_view(selector)
-# page.evaluate_script("document.querySelector('#{selector}').scrollIntoView();")
-# end
-# end
diff --git a/spec/javascripts/project_title_spec.js b/spec/javascripts/project_title_spec.js
index 3dba2e817ff..cc336180ff7 100644
--- a/spec/javascripts/project_title_spec.js
+++ b/spec/javascripts/project_title_spec.js
@@ -1,4 +1,3 @@
-/* eslint-disable space-before-function-paren, no-unused-expressions, no-return-assign, no-param-reassign, no-var, new-cap, wrap-iife, no-unused-vars, quotes, jasmine/no-expect-in-setup-teardown, max-len */
/* global Project */
import 'select2/select2';
@@ -7,47 +6,52 @@ import '~/api';
import '~/project_select';
import '~/project';
-(function() {
- describe('Project Title', function() {
- preloadFixtures('issues/open-issue.html.raw');
- loadJSONFixtures('projects.json');
+describe('Project Title', () => {
+ preloadFixtures('issues/open-issue.html.raw');
+ loadJSONFixtures('projects.json');
- beforeEach(function() {
- loadFixtures('issues/open-issue.html.raw');
+ beforeEach(() => {
+ loadFixtures('issues/open-issue.html.raw');
- window.gon = {};
- window.gon.api_version = 'v3';
+ window.gon = {};
+ window.gon.api_version = 'v3';
- return this.project = new Project();
- });
+ // eslint-disable-next-line no-new
+ new Project();
+ });
- describe('project list', function() {
- var fakeAjaxResponse = function fakeAjaxResponse(req) {
- var d;
- expect(req.url).toBe('/api/v3/projects.json?simple=true');
- expect(req.data).toEqual({ search: '', order_by: 'last_activity_at', per_page: 20, membership: true });
- d = $.Deferred();
- d.resolve(this.projects_data);
- return d.promise();
- };
-
- beforeEach((function(_this) {
- return function() {
- _this.projects_data = getJSONFixture('projects.json');
- return spyOn(jQuery, 'ajax').and.callFake(fakeAjaxResponse.bind(_this));
- };
- })(this));
- it('toggles dropdown', function() {
- var menu = $('.js-dropdown-menu-projects');
- $('.js-projects-dropdown-toggle').click();
- expect(menu).toHaveClass('open');
- menu.find('.dropdown-menu-close-icon').click();
- expect(menu).not.toHaveClass('open');
+ describe('project list', () => {
+ let reqUrl;
+ let reqData;
+
+ beforeEach(() => {
+ const fakeResponseData = getJSONFixture('projects.json');
+ spyOn(jQuery, 'ajax').and.callFake((req) => {
+ const def = $.Deferred();
+ reqUrl = req.url;
+ reqData = req.data;
+ def.resolve(fakeResponseData);
+ return def.promise();
});
});
- afterEach(() => {
- window.gon = {};
+ it('toggles dropdown', () => {
+ const $menu = $('.js-dropdown-menu-projects');
+ $('.js-projects-dropdown-toggle').click();
+ expect($menu).toHaveClass('open');
+ expect(reqUrl).toBe('/api/v3/projects.json?simple=true');
+ expect(reqData).toEqual({
+ search: '',
+ order_by: 'last_activity_at',
+ per_page: 20,
+ membership: true,
+ });
+ $menu.find('.dropdown-menu-close-icon').click();
+ expect($menu).not.toHaveClass('open');
});
});
-}).call(window);
+
+ afterEach(() => {
+ window.gon = {};
+ });
+});
diff --git a/spec/javascripts/test_bundle.js b/spec/javascripts/test_bundle.js
index 2c34402576b..729db02e06c 100644
--- a/spec/javascripts/test_bundle.js
+++ b/spec/javascripts/test_bundle.js
@@ -16,6 +16,14 @@ window.gl = window.gl || {};
window.gl.TEST_HOST = 'http://test.host';
window.gon = window.gon || {};
+// HACK: Chrome 59 disconnects if there are too many synchronous tests in a row
+// because it appears to lock up the thread that communicates to Karma's socket
+// This async beforeEach gets called on every spec and releases the JS thread long
+// enough for the socket to continue to communicate.
+// The downside is that it creates a minor performance penalty in the time it takes
+// to run our unit tests.
+beforeEach(done => done()); // eslint-disable-line jasmine/no-global-setup
+
// render all of our tests
const testsContext = require.context('.', true, /_spec$/);
testsContext.keys().forEach(function (path) {