summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke "Jared" Bennett <lbennett@gitlab.com>2016-10-31 14:56:55 +0000
committerLuke "Jared" Bennett <lbennett@gitlab.com>2016-11-04 15:25:22 +0000
commit4f377364ad2b073e59e8edde86f270c80cdb317a (patch)
tree9b86b9e0b9b3f2f3aefedfce2399db336481e97e
parentdd45c5e11eb2b315d89779abf6103e2531e1cc08 (diff)
downloadgitlab-ce-4f377364ad2b073e59e8edde86f270c80cdb317a.tar.gz
Added new .eslintrc for jasmine tests and corrected build_specimprove-build-scroll-controls-responsive-behaviour
-rw-r--r--package.json1
-rw-r--r--spec/javascripts/.eslintrc11
-rw-r--r--spec/javascripts/build_spec.js.es665
3 files changed, 45 insertions, 32 deletions
diff --git a/package.json b/package.json
index a303c9c1eac..e75e070451b 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
"eslint-config-airbnb": "^12.0.0",
"eslint-plugin-filenames": "^1.1.0",
"eslint-plugin-import": "^2.0.1",
+ "eslint-plugin-jasmine": "^1.8.1",
"eslint-plugin-jsx-a11y": "^2.2.3",
"eslint-plugin-react": "^6.4.1"
}
diff --git a/spec/javascripts/.eslintrc b/spec/javascripts/.eslintrc
new file mode 100644
index 00000000000..90388929612
--- /dev/null
+++ b/spec/javascripts/.eslintrc
@@ -0,0 +1,11 @@
+{
+ "plugins": ["jasmine"],
+ "env": {
+ "jasmine": true
+ },
+ "extends": "plugin:jasmine/recommended",
+ "rules": {
+ "prefer-arrow-callback": 0,
+ "func-names": 0
+ }
+}
diff --git a/spec/javascripts/build_spec.js.es6 b/spec/javascripts/build_spec.js.es6
index 44485c7745c..370944b6a8c 100644
--- a/spec/javascripts/build_spec.js.es6
+++ b/spec/javascripts/build_spec.js.es6
@@ -1,4 +1,5 @@
-/* eslint-disable */
+/* global Build */
+/* eslint-disable no-new */
//= require build
//= require breakpoints
//= require jquery.nicescroll
@@ -8,13 +9,13 @@
describe('Build', () => {
fixture.preload('build.html');
- beforeEach(function() {
+ beforeEach(function () {
fixture.load('build.html');
spyOn($, 'ajax');
});
describe('constructor', () => {
- beforeEach(function() {
+ beforeEach(function () {
jasmine.clock().install();
});
@@ -22,12 +23,12 @@
jasmine.clock().uninstall();
});
- describe('setup', function() {
- beforeEach(function() {
+ describe('setup', function () {
+ beforeEach(function () {
this.build = new Build();
});
- it('copies build options', function() {
+ it('copies build options', function () {
expect(this.build.pageUrl).toBe('http://example.com/root/test-build/builds/2');
expect(this.build.buildUrl).toBe('http://example.com/root/test-build/builds/2.json');
expect(this.build.buildStatus).toBe('passed');
@@ -35,17 +36,17 @@
expect(this.build.state).toBe('buildstate');
});
- it('only shows the jobs matching the current stage', function() {
+ it('only shows the jobs matching the current stage', function () {
expect($('.build-job[data-stage="build"]').is(':visible')).toBe(false);
expect($('.build-job[data-stage="test"]').is(':visible')).toBe(true);
expect($('.build-job[data-stage="deploy"]').is(':visible')).toBe(false);
});
- it('selects the current stage in the build dropdown menu', function() {
+ it('selects the current stage in the build dropdown menu', function () {
expect($('.stage-selection').text()).toBe('test');
});
- it('updates the jobs when the build dropdown changes', function() {
+ it('updates the jobs when the build dropdown changes', function () {
$('.stage-item:contains("build")').click();
expect($('.stage-selection').text()).toBe('build');
@@ -55,44 +56,44 @@
});
});
- describe('initial build trace', function() {
- beforeEach(function() {
+ describe('initial build trace', function () {
+ beforeEach(function () {
new Build();
});
- it('displays the initial build trace', function() {
+ it('displays the initial build trace', function () {
expect($.ajax.calls.count()).toBe(1);
- const [{url, dataType, success, context}] = $.ajax.calls.argsFor(0);
+ const [{ url, dataType, success, context }] = $.ajax.calls.argsFor(0);
expect(url).toBe('http://example.com/root/test-build/builds/2.json');
expect(dataType).toBe('json');
expect(success).toEqual(jasmine.any(Function));
- success.call(context, {trace_html: '<span>Example</span>', status: 'running'});
+ success.call(context, { trace_html: '<span>Example</span>', status: 'running' });
expect($('#build-trace .js-build-output').text()).toMatch(/Example/);
});
- it('removes the spinner', function() {
- const [{success, context}] = $.ajax.calls.argsFor(0);
- success.call(context, {trace_html: '<span>Example</span>', status: 'success'});
+ it('removes the spinner', function () {
+ const [{ success, context }] = $.ajax.calls.argsFor(0);
+ success.call(context, { trace_html: '<span>Example</span>', status: 'success' });
expect($('.js-build-refresh').length).toBe(0);
});
});
- describe('running build', function() {
- beforeEach(function() {
+ describe('running build', function () {
+ beforeEach(function () {
$('.js-build-options').data('buildStatus', 'running');
this.build = new Build();
spyOn(this.build, 'location')
.and.returnValue('http://example.com/root/test-build/builds/2');
});
- it('updates the build trace on an interval', function() {
+ it('updates the build trace on an interval', function () {
jasmine.clock().tick(4001);
expect($.ajax.calls.count()).toBe(2);
- let [{url, dataType, success, context}] = $.ajax.calls.argsFor(1);
+ let [{ url, dataType, success, context }] = $.ajax.calls.argsFor(1);
expect(url).toBe(
'http://example.com/root/test-build/builds/2/trace.json?state=buildstate'
);
@@ -103,7 +104,7 @@
html: '<span>Update<span>',
status: 'running',
state: 'newstate',
- append: true
+ append: true,
});
expect($('#build-trace .js-build-output').text()).toMatch(/Update/);
@@ -112,7 +113,7 @@
jasmine.clock().tick(4001);
expect($.ajax.calls.count()).toBe(3);
- [{url, dataType, success, context}] = $.ajax.calls.argsFor(2);
+ [{ url, dataType, success, context }] = $.ajax.calls.argsFor(2);
expect(url).toBe(
'http://example.com/root/test-build/builds/2/trace.json?state=newstate'
);
@@ -123,45 +124,45 @@
html: '<span>More</span>',
status: 'running',
state: 'finalstate',
- append: true
+ append: true,
});
expect($('#build-trace .js-build-output').text()).toMatch(/UpdateMore/);
expect(this.build.state).toBe('finalstate');
});
- it('replaces the entire build trace', function() {
+ it('replaces the entire build trace', function () {
jasmine.clock().tick(4001);
- let [{success, context}] = $.ajax.calls.argsFor(1);
+ let [{ success, context }] = $.ajax.calls.argsFor(1);
success.call(context, {
html: '<span>Update</span>',
status: 'running',
- append: true
+ append: true,
});
expect($('#build-trace .js-build-output').text()).toMatch(/Update/);
jasmine.clock().tick(4001);
- [{success, context}] = $.ajax.calls.argsFor(2);
+ [{ success, context }] = $.ajax.calls.argsFor(2);
success.call(context, {
html: '<span>Different</span>',
status: 'running',
- append: false
+ append: false,
});
expect($('#build-trace .js-build-output').text()).not.toMatch(/Update/);
expect($('#build-trace .js-build-output').text()).toMatch(/Different/);
});
- it('reloads the page when the build is done', function() {
+ it('reloads the page when the build is done', function () {
spyOn(Turbolinks, 'visit');
jasmine.clock().tick(4001);
- let [{success, context}] = $.ajax.calls.argsFor(1);
+ const [{ success, context }] = $.ajax.calls.argsFor(1);
success.call(context, {
html: '<span>Final</span>',
status: 'passed',
- append: true
+ append: true,
});
expect(Turbolinks.visit).toHaveBeenCalledWith(