Add test-subj-selector module to packages dir. (#16623)

* Add test-subj-selector module to packages dir.
* Rename to @kbn/test-subj-selector.
* Simplify rejectRejFiles Grunt task and ignore nested node_modules.
* Update jenkins_unit script to use yarn kbn CLI.
This commit is contained in:
CJ Cenizal 2018-02-13 10:34:47 -08:00 committed by GitHub
parent 62f3b808ee
commit eb49a8c449
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 174 additions and 25 deletions

View file

@ -80,11 +80,10 @@
"@elastic/eui": "0.0.19",
"@elastic/filesaver": "1.1.2",
"@elastic/numeral": "2.3.1",
"@elastic/test-subj-selector": "0.2.1",
"@elastic/ui-ace": "0.2.3",
"@kbn/babel-preset": "link:packages/kbn-babel-preset",
"@kbn/build": "link:packages/kbn-build",
"JSONStream": "1.1.1",
"@kbn/test-subj-selector": "link:packages/kbn-test-subj-selector",
"accept-language-parser": "1.2.0",
"angular": "1.6.5",
"angular-aria": "1.6.6",
@ -143,6 +142,7 @@
"js-yaml": "3.4.1",
"json-stringify-pretty-compact": "1.0.4",
"json-stringify-safe": "5.0.1",
"JSONStream": "1.1.1",
"jstimezonedetect": "1.0.5",
"leaflet": "1.0.3",
"leaflet-draw": "0.4.10",

View file

@ -0,0 +1,3 @@
# test-subj-selector
Convert a string from test subject syntax to css selectors.

View file

@ -0,0 +1,22 @@
function seletorToTerms(selector) {
return selector
.replace(/\s*&\s*/g, '&') // remove all whitespace around joins
.split(/\s+/);
}
function termToCssSelector(term) {
return term ? '[data-test-subj~="' + term + '"]' : '';
}
module.exports = function testSubjSelector(selector) {
const cssSelectors = [];
const terms = seletorToTerms(selector);
while (terms.length) {
const term = terms.shift();
// split each term by joins/& and map to css selectors
cssSelectors.push(term.split('&').map(termToCssSelector).join(''));
}
return cssSelectors.join(' ');
};

View file

@ -0,0 +1,16 @@
{
"name": "@kbn/test-subj-selector",
"version": "0.2.1",
"description": "",
"main": "index.js",
"scripts": {
"test": "mocha test"
},
"keywords": [],
"author": "Spencer Alger <email@spalger.com>",
"license": "Apache-2.0",
"devDependencies": {
"expect.js": "^0.3.1",
"mocha": "^2.3.4"
}
}

View file

@ -0,0 +1,10 @@
const testSubjSelector = require('../');
const expect = require('expect.js');
describe('testSubjSelector()', function () {
it('converts subjectSelectors to cssSelectors', function () {
expect(testSubjSelector('foo bar')).to.eql('[data-test-subj~="foo"] [data-test-subj~="bar"]');
expect(testSubjSelector('foo&bar')).to.eql('[data-test-subj~="foo"][data-test-subj~="bar"]');
expect(testSubjSelector('foo & bar')).to.eql('[data-test-subj~="foo"][data-test-subj~="bar"]');
});
});

View file

@ -0,0 +1,107 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
commander@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-0.6.1.tgz#fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06"
commander@2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873"
debug@2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
dependencies:
ms "0.7.1"
diff@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf"
escape-string-regexp@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1"
expect.js@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/expect.js/-/expect.js-0.3.1.tgz#b0a59a0d2eff5437544ebf0ceaa6015841d09b5b"
glob@3.2.11:
version "3.2.11"
resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d"
dependencies:
inherits "2"
minimatch "0.3"
growl@1.9.2:
version "1.9.2"
resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
inherits@2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
jade@0.26.3:
version "0.26.3"
resolved "https://registry.yarnpkg.com/jade/-/jade-0.26.3.tgz#8f10d7977d8d79f2f6ff862a81b0513ccb25686c"
dependencies:
commander "0.6.1"
mkdirp "0.3.0"
lru-cache@2:
version "2.7.3"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
minimatch@0.3:
version "0.3.0"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd"
dependencies:
lru-cache "2"
sigmund "~1.0.0"
minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
mkdirp@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
mkdirp@0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"
mocha@^2.3.4:
version "2.5.3"
resolved "https://registry.yarnpkg.com/mocha/-/mocha-2.5.3.tgz#161be5bdeb496771eb9b35745050b622b5aefc58"
dependencies:
commander "2.3.0"
debug "2.2.0"
diff "1.4.0"
escape-string-regexp "1.0.2"
glob "3.2.11"
growl "1.9.2"
jade "0.26.3"
mkdirp "0.5.1"
supports-color "1.2.0"
to-iso-string "0.0.2"
ms@0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
sigmund@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
supports-color@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e"
to-iso-string@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1"

View file

@ -1,4 +1,4 @@
import testSubjSelector from '@elastic/test-subj-selector';
import testSubjSelector from '@kbn/test-subj-selector';
// eslint-disable-next-line @elastic/kibana-custom/no-default-export
export default function bindToJquery($) {

View file

@ -1,5 +1,3 @@
import { startsWith } from 'lodash';
// Fails if any .rej files are found
// .rej files are an artifact from a failed git-apply or a jasper backport
@ -8,19 +6,14 @@ import { startsWith } from 'lodash';
export default grunt => {
grunt.registerTask('rejectRejFiles', 'Reject any git-apply .rej files', () => {
const ignoredTopLevelDirs = [
'esvm',
'plugins',
'node_modules',
'optimize'
];
const files = grunt.file.expand([
'**/*.rej',
'!esvm/**/*.rej',
'!plugins/**/*.rej',
'!optimize/**/*.rej',
'!**/node_modules/**/*.rej',
]);
const matchBase = true;
const filter = file => (
ignoredTopLevelDirs.every(dir => !startsWith(file, dir))
);
const files = grunt.file.expand({ filter, matchBase }, '*.rej');
if (files.length > 0) {
const err = `.rej files are not allowed:\n${files.join('\n')}`;
grunt.log.error(err);

View file

@ -1,4 +1,4 @@
import testSubjSelector from '@elastic/test-subj-selector';
import testSubjSelector from '@kbn/test-subj-selector';
import {
filter as filterAsync,
map as mapAsync,

View file

@ -3,8 +3,6 @@
set -e
source "$(dirname $0)/../../src/dev/ci_setup/setup.sh"
cd packages/kbn-plugin-helpers
yarn test
cd -
yarn kbn run test --skip-kibana --skip-kibana-extra
xvfb-run "$(yarn bin)/grunt" jenkins:unit;

View file

@ -116,10 +116,6 @@
version "2.3.1"
resolved "https://registry.yarnpkg.com/@elastic/numeral/-/numeral-2.3.1.tgz#743801971d8f0c975f9a122867d0e8939d31b3eb"
"@elastic/test-subj-selector@0.2.1":
version "0.2.1"
resolved "https://registry.yarnpkg.com/@elastic/test-subj-selector/-/test-subj-selector-0.2.1.tgz#f49fedd438bb1f2273d3c6b1b1b8bf335de2c192"
"@elastic/ui-ace@0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@elastic/ui-ace/-/ui-ace-0.2.3.tgz#5281aed47a79b7216c55542b0675e435692f20cd"
@ -136,6 +132,10 @@
version "0.0.0"
uid ""
"@kbn/test-subj-selector@link:packages/kbn-test-subj-selector":
version "0.0.0"
uid ""
"@types/json-stable-stringify@^1.0.32":
version "1.0.32"
resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.32.tgz#121f6917c4389db3923640b2e68de5fa64dda88e"