@xylabs/jest-helpers 2.12.14 → 2.12.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.cjs +63 -0
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.cts +1 -0
- package/dist/browser/index.d.cts.map +1 -1
- package/dist/browser/index.d.mts +1 -0
- package/dist/browser/index.d.mts.map +1 -1
- package/dist/browser/index.d.ts +1 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +71 -0
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/tags/config.cjs +33 -0
- package/dist/browser/tags/config.cjs.map +1 -0
- package/dist/browser/tags/config.d.cts +5 -0
- package/dist/browser/tags/config.d.cts.map +1 -0
- package/dist/browser/tags/config.d.mts +5 -0
- package/dist/browser/tags/config.d.mts.map +1 -0
- package/dist/browser/tags/config.d.ts +5 -0
- package/dist/browser/tags/config.d.ts.map +1 -0
- package/dist/browser/tags/config.js +12 -0
- package/dist/browser/tags/config.js.map +1 -0
- package/dist/browser/tags/filter.cjs +72 -0
- package/dist/browser/tags/filter.cjs.map +1 -0
- package/dist/browser/tags/filter.d.cts +2 -0
- package/dist/browser/tags/filter.d.cts.map +1 -0
- package/dist/browser/tags/filter.d.mts +2 -0
- package/dist/browser/tags/filter.d.mts.map +1 -0
- package/dist/browser/tags/filter.d.ts +2 -0
- package/dist/browser/tags/filter.d.ts.map +1 -0
- package/dist/browser/tags/filter.js +49 -0
- package/dist/browser/tags/filter.js.map +1 -0
- package/dist/browser/tags/index.cjs +88 -0
- package/dist/browser/tags/index.cjs.map +1 -0
- package/dist/browser/tags/index.d.cts +3 -0
- package/dist/browser/tags/index.d.cts.map +1 -0
- package/dist/browser/tags/index.d.mts +3 -0
- package/dist/browser/tags/index.d.mts.map +1 -0
- package/dist/browser/tags/index.d.ts +3 -0
- package/dist/browser/tags/index.d.ts.map +1 -0
- package/dist/browser/tags/index.js +73 -0
- package/dist/browser/tags/index.js.map +1 -0
- package/dist/browser/tags/regexps.cjs +44 -0
- package/dist/browser/tags/regexps.cjs.map +1 -0
- package/dist/browser/tags/regexps.d.cts +7 -0
- package/dist/browser/tags/regexps.d.cts.map +1 -0
- package/dist/browser/tags/regexps.d.mts +7 -0
- package/dist/browser/tags/regexps.d.mts.map +1 -0
- package/dist/browser/tags/regexps.d.ts +7 -0
- package/dist/browser/tags/regexps.d.ts.map +1 -0
- package/dist/browser/tags/regexps.js +21 -0
- package/dist/browser/tags/regexps.js.map +1 -0
- package/dist/browser/tags/utils.cjs +36 -0
- package/dist/browser/tags/utils.cjs.map +1 -0
- package/dist/browser/tags/utils.d.cts +2 -0
- package/dist/browser/tags/utils.d.cts.map +1 -0
- package/dist/browser/tags/utils.d.mts +2 -0
- package/dist/browser/tags/utils.d.mts.map +1 -0
- package/dist/browser/tags/utils.d.ts +2 -0
- package/dist/browser/tags/utils.d.ts.map +1 -0
- package/dist/browser/tags/utils.js +13 -0
- package/dist/browser/tags/utils.js.map +1 -0
- package/dist/node/index.cjs +65 -0
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +1 -0
- package/dist/node/index.d.cts.map +1 -1
- package/dist/node/index.d.mts +1 -0
- package/dist/node/index.d.mts.map +1 -1
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +71 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/tags/config.cjs +40 -0
- package/dist/node/tags/config.cjs.map +1 -0
- package/dist/node/tags/config.d.cts +5 -0
- package/dist/node/tags/config.d.cts.map +1 -0
- package/dist/node/tags/config.d.mts +5 -0
- package/dist/node/tags/config.d.mts.map +1 -0
- package/dist/node/tags/config.d.ts +5 -0
- package/dist/node/tags/config.d.ts.map +1 -0
- package/dist/node/tags/config.js +12 -0
- package/dist/node/tags/config.js.map +1 -0
- package/dist/node/tags/filter.cjs +76 -0
- package/dist/node/tags/filter.cjs.map +1 -0
- package/dist/node/tags/filter.d.cts +2 -0
- package/dist/node/tags/filter.d.cts.map +1 -0
- package/dist/node/tags/filter.d.mts +2 -0
- package/dist/node/tags/filter.d.mts.map +1 -0
- package/dist/node/tags/filter.d.ts +2 -0
- package/dist/node/tags/filter.d.ts.map +1 -0
- package/dist/node/tags/filter.js +49 -0
- package/dist/node/tags/filter.js.map +1 -0
- package/dist/node/tags/index.cjs +93 -0
- package/dist/node/tags/index.cjs.map +1 -0
- package/dist/node/tags/index.d.cts +3 -0
- package/dist/node/tags/index.d.cts.map +1 -0
- package/dist/node/tags/index.d.mts +3 -0
- package/dist/node/tags/index.d.mts.map +1 -0
- package/dist/node/tags/index.d.ts +3 -0
- package/dist/node/tags/index.d.ts.map +1 -0
- package/dist/node/tags/index.js +73 -0
- package/dist/node/tags/index.js.map +1 -0
- package/dist/node/tags/regexps.cjs +53 -0
- package/dist/node/tags/regexps.cjs.map +1 -0
- package/dist/node/tags/regexps.d.cts +7 -0
- package/dist/node/tags/regexps.d.cts.map +1 -0
- package/dist/node/tags/regexps.d.mts +7 -0
- package/dist/node/tags/regexps.d.mts.map +1 -0
- package/dist/node/tags/regexps.d.ts +7 -0
- package/dist/node/tags/regexps.d.ts.map +1 -0
- package/dist/node/tags/regexps.js +21 -0
- package/dist/node/tags/regexps.js.map +1 -0
- package/dist/node/tags/utils.cjs +40 -0
- package/dist/node/tags/utils.cjs.map +1 -0
- package/dist/node/tags/utils.d.cts +2 -0
- package/dist/node/tags/utils.d.cts.map +1 -0
- package/dist/node/tags/utils.d.mts +2 -0
- package/dist/node/tags/utils.d.mts.map +1 -0
- package/dist/node/tags/utils.d.ts +2 -0
- package/dist/node/tags/utils.d.ts.map +1 -0
- package/dist/node/tags/utils.js +13 -0
- package/dist/node/tags/utils.js.map +1 -0
- package/package.json +3 -3
- package/src/index.ts +1 -0
- package/src/tags/config.ts +7 -0
- package/src/tags/filter.ts +46 -0
- package/src/tags/index.ts +25 -0
- package/src/tags/regexps.ts +17 -0
- package/src/tags/utils.ts +8 -0
package/src/index.ts
CHANGED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { AND_SYMBOL, NOT_SYMBOL, OR_SYMBOL } from './config'
|
|
2
|
+
import { AND_REGX, BAD_REGX, GOOD_REGX, OR_REGX, PLAIN_REGX } from './regexps'
|
|
3
|
+
|
|
4
|
+
// f.e. tag1 !tag2
|
|
5
|
+
// tag1 && tag2 && !tag3
|
|
6
|
+
// tag1 || tag2 || !tag3
|
|
7
|
+
|
|
8
|
+
//ATTENTION!!: cases with () not handled: f.e. (tag1 && tag2) || tag3 won`t work
|
|
9
|
+
|
|
10
|
+
export const matchFilter =
|
|
11
|
+
(strParam = '') =>
|
|
12
|
+
(tags: string[]) => {
|
|
13
|
+
const str = strParam.trim()
|
|
14
|
+
if (typeof tags === 'string') {
|
|
15
|
+
tags = [tags]
|
|
16
|
+
}
|
|
17
|
+
if (str.includes(OR_SYMBOL)) {
|
|
18
|
+
const include = goodTags(str.split(OR_REGX))
|
|
19
|
+
const exclude = badTags(str.split(OR_REGX))
|
|
20
|
+
if (exclude.length === 0) {
|
|
21
|
+
return include.length === 0 || include.some((s) => tags.includes(s))
|
|
22
|
+
}
|
|
23
|
+
if (include.length === 0 && exclude.length !== 0) {
|
|
24
|
+
return exclude.some((s) => !tags.includes(s))
|
|
25
|
+
}
|
|
26
|
+
return include.length === 0 || include.some((s) => tags.includes(s)) || exclude.some((s) => !tags.includes(s))
|
|
27
|
+
}
|
|
28
|
+
if (str.includes(AND_SYMBOL)) {
|
|
29
|
+
const include = goodTags(str.split(AND_REGX))
|
|
30
|
+
const exclude = badTags(str.split(AND_REGX))
|
|
31
|
+
|
|
32
|
+
return (include.length === 0 || include.every((s) => tags.includes(s))) && !exclude.some((s) => tags.includes(s))
|
|
33
|
+
}
|
|
34
|
+
const include = goodTags(str.split(PLAIN_REGX))
|
|
35
|
+
const exclude = badTags(str.split(PLAIN_REGX))
|
|
36
|
+
|
|
37
|
+
return (include.length === 0 || include.some((s) => tags.includes(s))) && !exclude.some((s) => tags.includes(s))
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const goodTags = (arr: string[]) => {
|
|
41
|
+
return arr.filter((s) => s.match(GOOD_REGX))
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const badTags = (arr: string[]) => {
|
|
45
|
+
return arr.filter((s) => s.match(BAD_REGX)).map((s) => s.replace(NOT_SYMBOL, ''))
|
|
46
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
2
|
+
const argv = require('minimist')(process.argv.slice(2))
|
|
3
|
+
|
|
4
|
+
import { matchFilter } from './filter'
|
|
5
|
+
|
|
6
|
+
//Based on https://www.npmjs.com/package/jest-tags/v/1.0.1
|
|
7
|
+
|
|
8
|
+
export const args = argv(process.argv.slice(2))
|
|
9
|
+
|
|
10
|
+
export function tags(...tagLabels: string[]) {
|
|
11
|
+
const filter = matchFilter(args.tags)
|
|
12
|
+
const thisGlobal = global
|
|
13
|
+
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
|
+
const chain: Record<string, any> = {}
|
|
16
|
+
|
|
17
|
+
const filterMatch = filter(tagLabels)
|
|
18
|
+
|
|
19
|
+
chain.test = filterMatch ? thisGlobal.test : thisGlobal.xtest
|
|
20
|
+
chain.test.only = thisGlobal.test.only
|
|
21
|
+
chain.test.skip = thisGlobal.test.skip
|
|
22
|
+
chain.xtest = thisGlobal.xtest
|
|
23
|
+
|
|
24
|
+
return chain
|
|
25
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AND_SYMBOL, NOT_SYMBOL, OR_SYMBOL } from './config'
|
|
2
|
+
|
|
3
|
+
export const escape = (str: string) =>
|
|
4
|
+
str
|
|
5
|
+
.split('')
|
|
6
|
+
.map((symbol) => `\\${symbol}`)
|
|
7
|
+
.join('')
|
|
8
|
+
|
|
9
|
+
export const AND_REGX = new RegExp(`\\s*${escape(AND_SYMBOL)}\\s*`)
|
|
10
|
+
|
|
11
|
+
export const OR_REGX = new RegExp(`\\s*${escape(OR_SYMBOL)}\\s*`)
|
|
12
|
+
|
|
13
|
+
export const PLAIN_REGX = new RegExp('\\s+')
|
|
14
|
+
|
|
15
|
+
export const BAD_REGX = new RegExp(`^${escape(NOT_SYMBOL)}.*$`)
|
|
16
|
+
|
|
17
|
+
export const GOOD_REGX = new RegExp(`^[^${escape(NOT_SYMBOL)}].*$`)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RESERVED_COMMANDS } from './config'
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
|
+
export const getJestPassedParams = (argv: any) => {
|
|
5
|
+
return [...argv, '-i'].filter((prop) => {
|
|
6
|
+
return prop.startsWith('-') && RESERVED_COMMANDS.every((command) => command !== prop)
|
|
7
|
+
})
|
|
8
|
+
}
|