summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Bennett <lbennett@gitlab.com>2019-05-29 01:26:38 +0100
committerLuke Bennett <lbennett@gitlab.com>2019-05-29 03:07:00 +0100
commitdc8d5be0dfeb86b04e7c57e1d7323e1758cb11ac (patch)
treebb3d78eed172d297df92c5681492ed772747e559
parentd7e106b7b98563394f548cf1da6b59e1644fd5b8 (diff)
downloadgitlab-ce-karma-quarantine.tar.gz
Add karma spec quarantinekarma-quarantine
Used to remove certain troublesome specs from the main karma job and allow them to fail in different job.
-rw-r--r--.gitlab/ci/frontend.gitlab-ci.yml26
-rw-r--r--config/karma.config.js6
-rw-r--r--package.json2
-rw-r--r--spec/javascripts/notes/components/note_app_spec.js5
-rw-r--r--yarn.lock15
5 files changed, 40 insertions, 14 deletions
diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml
index 986ba7558d5..b08d0412ca0 100644
--- a/.gitlab/ci/frontend.gitlab-ci.yml
+++ b/.gitlab/ci/frontend.gitlab-ci.yml
@@ -110,7 +110,7 @@ gitlab:ui:visual:
- gitlab-ui/tests/__image_snapshots__/
when: always
-karma:
+.karma: &karma
extends: .dedicated-no-docs-pull-cache-job
<<: *use-pg
dependencies:
@@ -119,12 +119,6 @@ karma:
variables:
# we override the max_old_space_size to prevent OOM errors
NODE_OPTIONS: --max_old_space_size=3584
- script:
- - export BABEL_ENV=coverage CHROME_LOG_FILE=chrome_debug.log
- - date
- - scripts/gitaly-test-spawn
- - date
- - bundle exec rake karma
coverage: '/^Statements *: (\d+\.\d+%)/'
artifacts:
name: coverage-javascript
@@ -136,6 +130,24 @@ karma:
reports:
junit: junit_karma.xml
+karma:
+ <<: *karma
+ script:
+ - export BABEL_ENV=coverage CHROME_LOG_FILE=chrome_debug.log
+ - date
+ - scripts/gitaly-test-spawn
+ - date
+ - bundle exec rake karma
+
+karma-quarantine:
+ <<: *karma
+ script:
+ - date
+ - scripts/gitaly-test-spawn
+ - date
+ - QUARANTINE=true bundle exec rake karma
+ allow_failure: true
+
jest:
extends: .dedicated-no-docs-and-no-qa-pull-cache-job
<<: *use-pg
diff --git a/config/karma.config.js b/config/karma.config.js
index 2a5bf3581e0..93d011d3f25 100644
--- a/config/karma.config.js
+++ b/config/karma.config.js
@@ -9,6 +9,9 @@ const IS_EE = require('./helpers/is_ee_env');
const ROOT_PATH = path.resolve(__dirname, '..');
const SPECS_PATH = /^(?:\.[\\\/])?(ee[\\\/])?spec[\\\/]javascripts[\\\/]/;
+const QUARANTINED_REGEX = /QUARANTINE\|/;
+const UNQUARANTINED_REGEX = /^((?!QUARANTINE\|).)*$/;
+
function exitError(message) {
console.error(chalk.red(`\nError: ${message}\n`));
process.exit(1);
@@ -109,11 +112,14 @@ module.exports = function(config) {
const fixturesPath = `${IS_EE ? 'ee/' : ''}spec/javascripts/fixtures`;
+ const grepRegex = process.env.QUARANTINE ? QUARANTINED_REGEX : UNQUARANTINED_REGEX;
+
const karmaConfig = {
basePath: ROOT_PATH,
browsers: ['ChromeHeadlessCustom'],
client: {
color: !process.env.CI,
+ args: ['--grep', grepRegex.toString()],
},
customLaunchers: {
ChromeHeadlessCustom: {
diff --git a/package.json b/package.json
index a4ec2dce0df..bd582d95805 100644
--- a/package.json
+++ b/package.json
@@ -177,7 +177,7 @@
"karma": "^3.0.0",
"karma-chrome-launcher": "^2.2.0",
"karma-coverage-istanbul-reporter": "^2.0.4",
- "karma-jasmine": "^1.1.2",
+ "karma-jasmine": "2.0.1",
"karma-junit-reporter": "^1.2.0",
"karma-mocha-reporter": "^2.2.5",
"karma-sourcemap-loader": "^0.3.7",
diff --git a/spec/javascripts/notes/components/note_app_spec.js b/spec/javascripts/notes/components/note_app_spec.js
index f04af04f852..1ed699f498b 100644
--- a/spec/javascripts/notes/components/note_app_spec.js
+++ b/spec/javascripts/notes/components/note_app_spec.js
@@ -186,7 +186,7 @@ describe('note_app', () => {
expect(wrapper.find('.js-vue-issue-note-form').exists()).toBe(true);
});
- it('calls the service to update the note', done => {
+ it('QUARANTINE|calls the service to update the note', done => {
wrapper.find('.js-vue-issue-note-form').value = 'this is a note';
wrapper.find('.js-vue-issue-save').trigger('click');
@@ -221,7 +221,7 @@ describe('note_app', () => {
expect(wrapper.find('.js-vue-issue-note-form').exists()).toBe(true);
});
- it('updates the note and resets the edit form', done => {
+ it('QUARANTINE|updates the note and resets the edit form', done => {
wrapper.find('.js-vue-issue-note-form').value = 'this is a note';
wrapper.find('.js-vue-issue-save').trigger('click');
@@ -311,6 +311,7 @@ describe('note_app', () => {
},
});
const toggleAwardAction = jasmine.createSpy('toggleAward');
+ wrapper = mountComponent();
wrapper.vm.$store.hotUpdate({
actions: {
toggleAward: toggleAwardAction,
diff --git a/yarn.lock b/yarn.lock
index 7c119e2c9dd..f637ba92ff5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6134,6 +6134,11 @@ jasmine-core@^2.9.0:
resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.9.0.tgz#bfbb56defcd30789adec5a3fbba8504233289c72"
integrity sha1-v7tW3vzTB4mt7Fo/u6hQQjMonHI=
+jasmine-core@^3.3:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.4.0.tgz#2a74618e966026530c3518f03e9f845d26473ce3"
+ integrity sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg==
+
jasmine-diff@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/jasmine-diff/-/jasmine-diff-0.1.3.tgz#93ccc2dcc41028c5ddd4606558074839f2deeaa8"
@@ -6750,10 +6755,12 @@ karma-coverage-istanbul-reporter@^2.0.4:
istanbul-api "^2.0.5"
minimatch "^3.0.4"
-karma-jasmine@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.2.tgz#394f2b25ffb4a644b9ada6f22d443e2fd08886c3"
- integrity sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=
+karma-jasmine@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-2.0.1.tgz#26e3e31f2faf272dd80ebb0e1898914cc3a19763"
+ integrity sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==
+ dependencies:
+ jasmine-core "^3.3"
karma-junit-reporter@^1.2.0:
version "1.2.0"