@testim/testim-cli 3.236.0 → 3.239.0
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/executionQueue.js +4 -0
- package/npm-shrinkwrap.json +93 -99
- package/package.json +1 -1
- package/player/stepActions/scripts/scroll.js +15 -8
- package/player/webdriver.js +9 -8
- package/runOptions.js +18 -0
- package/runners/ParallelWorkerManager.js +14 -5
- package/runners/TestPlanRunner.js +2 -2
package/executionQueue.js
CHANGED
|
@@ -7,6 +7,10 @@ class ExecutionQueue {
|
|
|
7
7
|
this._waitingTests = testList.map(testInfo => new TestRun(executionId, executionName, testInfo, options, branchToUse, testStatus));
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
stop() {
|
|
11
|
+
this._waitingTests = [];
|
|
12
|
+
}
|
|
13
|
+
|
|
10
14
|
getNext() {
|
|
11
15
|
const nextTestRunHandler = this._waitingTests.shift();
|
|
12
16
|
if (nextTestRunHandler) {
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@testim/testim-cli",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.239.0",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@testim/testim-cli",
|
|
9
|
-
"version": "3.
|
|
9
|
+
"version": "3.239.0",
|
|
10
10
|
"license": "Proprietary",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@applitools/eyes-sdk-core": "13.2.0",
|
|
@@ -484,21 +484,21 @@
|
|
|
484
484
|
}
|
|
485
485
|
},
|
|
486
486
|
"node_modules/@babel/core": {
|
|
487
|
-
"version": "7.18.
|
|
488
|
-
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.
|
|
489
|
-
"integrity": "sha512-
|
|
487
|
+
"version": "7.18.2",
|
|
488
|
+
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz",
|
|
489
|
+
"integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==",
|
|
490
490
|
"dev": true,
|
|
491
491
|
"dependencies": {
|
|
492
492
|
"@ampproject/remapping": "^2.1.0",
|
|
493
493
|
"@babel/code-frame": "^7.16.7",
|
|
494
|
-
"@babel/generator": "^7.18.
|
|
495
|
-
"@babel/helper-compilation-targets": "^7.
|
|
494
|
+
"@babel/generator": "^7.18.2",
|
|
495
|
+
"@babel/helper-compilation-targets": "^7.18.2",
|
|
496
496
|
"@babel/helper-module-transforms": "^7.18.0",
|
|
497
|
-
"@babel/helpers": "^7.18.
|
|
497
|
+
"@babel/helpers": "^7.18.2",
|
|
498
498
|
"@babel/parser": "^7.18.0",
|
|
499
499
|
"@babel/template": "^7.16.7",
|
|
500
|
-
"@babel/traverse": "^7.18.
|
|
501
|
-
"@babel/types": "^7.18.
|
|
500
|
+
"@babel/traverse": "^7.18.2",
|
|
501
|
+
"@babel/types": "^7.18.2",
|
|
502
502
|
"convert-source-map": "^1.7.0",
|
|
503
503
|
"debug": "^4.1.0",
|
|
504
504
|
"gensync": "^1.0.0-beta.2",
|
|
@@ -532,12 +532,12 @@
|
|
|
532
532
|
}
|
|
533
533
|
},
|
|
534
534
|
"node_modules/@babel/generator": {
|
|
535
|
-
"version": "7.18.
|
|
536
|
-
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.
|
|
537
|
-
"integrity": "sha512-
|
|
535
|
+
"version": "7.18.2",
|
|
536
|
+
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz",
|
|
537
|
+
"integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==",
|
|
538
538
|
"dev": true,
|
|
539
539
|
"dependencies": {
|
|
540
|
-
"@babel/types": "^7.18.
|
|
540
|
+
"@babel/types": "^7.18.2",
|
|
541
541
|
"@jridgewell/gen-mapping": "^0.3.0",
|
|
542
542
|
"jsesc": "^2.5.1"
|
|
543
543
|
},
|
|
@@ -560,9 +560,9 @@
|
|
|
560
560
|
}
|
|
561
561
|
},
|
|
562
562
|
"node_modules/@babel/helper-compilation-targets": {
|
|
563
|
-
"version": "7.
|
|
564
|
-
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.
|
|
565
|
-
"integrity": "sha512-
|
|
563
|
+
"version": "7.18.2",
|
|
564
|
+
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz",
|
|
565
|
+
"integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==",
|
|
566
566
|
"dev": true,
|
|
567
567
|
"dependencies": {
|
|
568
568
|
"@babel/compat-data": "^7.17.10",
|
|
@@ -587,13 +587,10 @@
|
|
|
587
587
|
}
|
|
588
588
|
},
|
|
589
589
|
"node_modules/@babel/helper-environment-visitor": {
|
|
590
|
-
"version": "7.
|
|
591
|
-
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.
|
|
592
|
-
"integrity": "sha512-
|
|
590
|
+
"version": "7.18.2",
|
|
591
|
+
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz",
|
|
592
|
+
"integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==",
|
|
593
593
|
"dev": true,
|
|
594
|
-
"dependencies": {
|
|
595
|
-
"@babel/types": "^7.16.7"
|
|
596
|
-
},
|
|
597
594
|
"engines": {
|
|
598
595
|
"node": ">=6.9.0"
|
|
599
596
|
}
|
|
@@ -655,12 +652,12 @@
|
|
|
655
652
|
}
|
|
656
653
|
},
|
|
657
654
|
"node_modules/@babel/helper-simple-access": {
|
|
658
|
-
"version": "7.
|
|
659
|
-
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.
|
|
660
|
-
"integrity": "sha512-
|
|
655
|
+
"version": "7.18.2",
|
|
656
|
+
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz",
|
|
657
|
+
"integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==",
|
|
661
658
|
"dev": true,
|
|
662
659
|
"dependencies": {
|
|
663
|
-
"@babel/types": "^7.
|
|
660
|
+
"@babel/types": "^7.18.2"
|
|
664
661
|
},
|
|
665
662
|
"engines": {
|
|
666
663
|
"node": ">=6.9.0"
|
|
@@ -696,14 +693,14 @@
|
|
|
696
693
|
}
|
|
697
694
|
},
|
|
698
695
|
"node_modules/@babel/helpers": {
|
|
699
|
-
"version": "7.18.
|
|
700
|
-
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.
|
|
701
|
-
"integrity": "sha512-
|
|
696
|
+
"version": "7.18.2",
|
|
697
|
+
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz",
|
|
698
|
+
"integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==",
|
|
702
699
|
"dev": true,
|
|
703
700
|
"dependencies": {
|
|
704
701
|
"@babel/template": "^7.16.7",
|
|
705
|
-
"@babel/traverse": "^7.18.
|
|
706
|
-
"@babel/types": "^7.18.
|
|
702
|
+
"@babel/traverse": "^7.18.2",
|
|
703
|
+
"@babel/types": "^7.18.2"
|
|
707
704
|
},
|
|
708
705
|
"engines": {
|
|
709
706
|
"node": ">=6.9.0"
|
|
@@ -799,9 +796,9 @@
|
|
|
799
796
|
}
|
|
800
797
|
},
|
|
801
798
|
"node_modules/@babel/runtime": {
|
|
802
|
-
"version": "7.18.
|
|
803
|
-
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.
|
|
804
|
-
"integrity": "sha512-
|
|
799
|
+
"version": "7.18.2",
|
|
800
|
+
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.2.tgz",
|
|
801
|
+
"integrity": "sha512-mTV1PibQHr88R1p4nH/uhR/TJ0mXGEgKTx6Mnd1cn/DSA9r8fqbd+d31xujI2C1pRWtxjy+HAcmtB+MEcF4VNg==",
|
|
805
802
|
"dependencies": {
|
|
806
803
|
"regenerator-runtime": "^0.13.4"
|
|
807
804
|
},
|
|
@@ -824,19 +821,19 @@
|
|
|
824
821
|
}
|
|
825
822
|
},
|
|
826
823
|
"node_modules/@babel/traverse": {
|
|
827
|
-
"version": "7.18.
|
|
828
|
-
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.
|
|
829
|
-
"integrity": "sha512-
|
|
824
|
+
"version": "7.18.2",
|
|
825
|
+
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz",
|
|
826
|
+
"integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==",
|
|
830
827
|
"dev": true,
|
|
831
828
|
"dependencies": {
|
|
832
829
|
"@babel/code-frame": "^7.16.7",
|
|
833
|
-
"@babel/generator": "^7.18.
|
|
834
|
-
"@babel/helper-environment-visitor": "^7.
|
|
830
|
+
"@babel/generator": "^7.18.2",
|
|
831
|
+
"@babel/helper-environment-visitor": "^7.18.2",
|
|
835
832
|
"@babel/helper-function-name": "^7.17.9",
|
|
836
833
|
"@babel/helper-hoist-variables": "^7.16.7",
|
|
837
834
|
"@babel/helper-split-export-declaration": "^7.16.7",
|
|
838
835
|
"@babel/parser": "^7.18.0",
|
|
839
|
-
"@babel/types": "^7.18.
|
|
836
|
+
"@babel/types": "^7.18.2",
|
|
840
837
|
"debug": "^4.1.0",
|
|
841
838
|
"globals": "^11.1.0"
|
|
842
839
|
},
|
|
@@ -845,9 +842,9 @@
|
|
|
845
842
|
}
|
|
846
843
|
},
|
|
847
844
|
"node_modules/@babel/types": {
|
|
848
|
-
"version": "7.18.
|
|
849
|
-
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.
|
|
850
|
-
"integrity": "sha512-
|
|
845
|
+
"version": "7.18.2",
|
|
846
|
+
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.2.tgz",
|
|
847
|
+
"integrity": "sha512-0On6B8A4/+mFUto5WERt3EEuG1NznDirvwca1O8UwXQHVY8g3R7OzYgxXdOfMwLO08UrpUD/2+3Bclyq+/C94Q==",
|
|
851
848
|
"dev": true,
|
|
852
849
|
"dependencies": {
|
|
853
850
|
"@babel/helper-validator-identifier": "^7.16.7",
|
|
@@ -4894,9 +4891,9 @@
|
|
|
4894
4891
|
}
|
|
4895
4892
|
},
|
|
4896
4893
|
"node_modules/electron-to-chromium": {
|
|
4897
|
-
"version": "1.4.
|
|
4898
|
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.
|
|
4899
|
-
"integrity": "sha512-
|
|
4894
|
+
"version": "1.4.138",
|
|
4895
|
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.138.tgz",
|
|
4896
|
+
"integrity": "sha512-IOyp2Seq3w4QLln+yZWcMF3VXhhduz4bwg9gfI+CnP5TkzwNXQ8FCZuwwPsnes73AfWdf5J2n2OXdUwDUspDPQ==",
|
|
4900
4897
|
"dev": true
|
|
4901
4898
|
},
|
|
4902
4899
|
"node_modules/emoji-regex": {
|
|
@@ -9245,9 +9242,9 @@
|
|
|
9245
9242
|
}
|
|
9246
9243
|
},
|
|
9247
9244
|
"node_modules/node-releases": {
|
|
9248
|
-
"version": "2.0.
|
|
9249
|
-
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.
|
|
9250
|
-
"integrity": "sha512-
|
|
9245
|
+
"version": "2.0.5",
|
|
9246
|
+
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz",
|
|
9247
|
+
"integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==",
|
|
9251
9248
|
"dev": true
|
|
9252
9249
|
},
|
|
9253
9250
|
"node_modules/nopt": {
|
|
@@ -16745,21 +16742,21 @@
|
|
|
16745
16742
|
"dev": true
|
|
16746
16743
|
},
|
|
16747
16744
|
"@babel/core": {
|
|
16748
|
-
"version": "7.18.
|
|
16749
|
-
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.
|
|
16750
|
-
"integrity": "sha512-
|
|
16745
|
+
"version": "7.18.2",
|
|
16746
|
+
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz",
|
|
16747
|
+
"integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==",
|
|
16751
16748
|
"dev": true,
|
|
16752
16749
|
"requires": {
|
|
16753
16750
|
"@ampproject/remapping": "^2.1.0",
|
|
16754
16751
|
"@babel/code-frame": "^7.16.7",
|
|
16755
|
-
"@babel/generator": "^7.18.
|
|
16756
|
-
"@babel/helper-compilation-targets": "^7.
|
|
16752
|
+
"@babel/generator": "^7.18.2",
|
|
16753
|
+
"@babel/helper-compilation-targets": "^7.18.2",
|
|
16757
16754
|
"@babel/helper-module-transforms": "^7.18.0",
|
|
16758
|
-
"@babel/helpers": "^7.18.
|
|
16755
|
+
"@babel/helpers": "^7.18.2",
|
|
16759
16756
|
"@babel/parser": "^7.18.0",
|
|
16760
16757
|
"@babel/template": "^7.16.7",
|
|
16761
|
-
"@babel/traverse": "^7.18.
|
|
16762
|
-
"@babel/types": "^7.18.
|
|
16758
|
+
"@babel/traverse": "^7.18.2",
|
|
16759
|
+
"@babel/types": "^7.18.2",
|
|
16763
16760
|
"convert-source-map": "^1.7.0",
|
|
16764
16761
|
"debug": "^4.1.0",
|
|
16765
16762
|
"gensync": "^1.0.0-beta.2",
|
|
@@ -16785,12 +16782,12 @@
|
|
|
16785
16782
|
}
|
|
16786
16783
|
},
|
|
16787
16784
|
"@babel/generator": {
|
|
16788
|
-
"version": "7.18.
|
|
16789
|
-
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.
|
|
16790
|
-
"integrity": "sha512-
|
|
16785
|
+
"version": "7.18.2",
|
|
16786
|
+
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz",
|
|
16787
|
+
"integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==",
|
|
16791
16788
|
"dev": true,
|
|
16792
16789
|
"requires": {
|
|
16793
|
-
"@babel/types": "^7.18.
|
|
16790
|
+
"@babel/types": "^7.18.2",
|
|
16794
16791
|
"@jridgewell/gen-mapping": "^0.3.0",
|
|
16795
16792
|
"jsesc": "^2.5.1"
|
|
16796
16793
|
},
|
|
@@ -16809,9 +16806,9 @@
|
|
|
16809
16806
|
}
|
|
16810
16807
|
},
|
|
16811
16808
|
"@babel/helper-compilation-targets": {
|
|
16812
|
-
"version": "7.
|
|
16813
|
-
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.
|
|
16814
|
-
"integrity": "sha512-
|
|
16809
|
+
"version": "7.18.2",
|
|
16810
|
+
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz",
|
|
16811
|
+
"integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==",
|
|
16815
16812
|
"dev": true,
|
|
16816
16813
|
"requires": {
|
|
16817
16814
|
"@babel/compat-data": "^7.17.10",
|
|
@@ -16829,13 +16826,10 @@
|
|
|
16829
16826
|
}
|
|
16830
16827
|
},
|
|
16831
16828
|
"@babel/helper-environment-visitor": {
|
|
16832
|
-
"version": "7.
|
|
16833
|
-
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.
|
|
16834
|
-
"integrity": "sha512-
|
|
16835
|
-
"dev": true
|
|
16836
|
-
"requires": {
|
|
16837
|
-
"@babel/types": "^7.16.7"
|
|
16838
|
-
}
|
|
16829
|
+
"version": "7.18.2",
|
|
16830
|
+
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz",
|
|
16831
|
+
"integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==",
|
|
16832
|
+
"dev": true
|
|
16839
16833
|
},
|
|
16840
16834
|
"@babel/helper-function-name": {
|
|
16841
16835
|
"version": "7.17.9",
|
|
@@ -16882,12 +16876,12 @@
|
|
|
16882
16876
|
}
|
|
16883
16877
|
},
|
|
16884
16878
|
"@babel/helper-simple-access": {
|
|
16885
|
-
"version": "7.
|
|
16886
|
-
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.
|
|
16887
|
-
"integrity": "sha512-
|
|
16879
|
+
"version": "7.18.2",
|
|
16880
|
+
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz",
|
|
16881
|
+
"integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==",
|
|
16888
16882
|
"dev": true,
|
|
16889
16883
|
"requires": {
|
|
16890
|
-
"@babel/types": "^7.
|
|
16884
|
+
"@babel/types": "^7.18.2"
|
|
16891
16885
|
}
|
|
16892
16886
|
},
|
|
16893
16887
|
"@babel/helper-split-export-declaration": {
|
|
@@ -16911,14 +16905,14 @@
|
|
|
16911
16905
|
"dev": true
|
|
16912
16906
|
},
|
|
16913
16907
|
"@babel/helpers": {
|
|
16914
|
-
"version": "7.18.
|
|
16915
|
-
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.
|
|
16916
|
-
"integrity": "sha512-
|
|
16908
|
+
"version": "7.18.2",
|
|
16909
|
+
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz",
|
|
16910
|
+
"integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==",
|
|
16917
16911
|
"dev": true,
|
|
16918
16912
|
"requires": {
|
|
16919
16913
|
"@babel/template": "^7.16.7",
|
|
16920
|
-
"@babel/traverse": "^7.18.
|
|
16921
|
-
"@babel/types": "^7.18.
|
|
16914
|
+
"@babel/traverse": "^7.18.2",
|
|
16915
|
+
"@babel/types": "^7.18.2"
|
|
16922
16916
|
}
|
|
16923
16917
|
},
|
|
16924
16918
|
"@babel/highlight": {
|
|
@@ -16989,9 +16983,9 @@
|
|
|
16989
16983
|
"dev": true
|
|
16990
16984
|
},
|
|
16991
16985
|
"@babel/runtime": {
|
|
16992
|
-
"version": "7.18.
|
|
16993
|
-
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.
|
|
16994
|
-
"integrity": "sha512-
|
|
16986
|
+
"version": "7.18.2",
|
|
16987
|
+
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.2.tgz",
|
|
16988
|
+
"integrity": "sha512-mTV1PibQHr88R1p4nH/uhR/TJ0mXGEgKTx6Mnd1cn/DSA9r8fqbd+d31xujI2C1pRWtxjy+HAcmtB+MEcF4VNg==",
|
|
16995
16989
|
"requires": {
|
|
16996
16990
|
"regenerator-runtime": "^0.13.4"
|
|
16997
16991
|
}
|
|
@@ -17008,27 +17002,27 @@
|
|
|
17008
17002
|
}
|
|
17009
17003
|
},
|
|
17010
17004
|
"@babel/traverse": {
|
|
17011
|
-
"version": "7.18.
|
|
17012
|
-
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.
|
|
17013
|
-
"integrity": "sha512-
|
|
17005
|
+
"version": "7.18.2",
|
|
17006
|
+
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz",
|
|
17007
|
+
"integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==",
|
|
17014
17008
|
"dev": true,
|
|
17015
17009
|
"requires": {
|
|
17016
17010
|
"@babel/code-frame": "^7.16.7",
|
|
17017
|
-
"@babel/generator": "^7.18.
|
|
17018
|
-
"@babel/helper-environment-visitor": "^7.
|
|
17011
|
+
"@babel/generator": "^7.18.2",
|
|
17012
|
+
"@babel/helper-environment-visitor": "^7.18.2",
|
|
17019
17013
|
"@babel/helper-function-name": "^7.17.9",
|
|
17020
17014
|
"@babel/helper-hoist-variables": "^7.16.7",
|
|
17021
17015
|
"@babel/helper-split-export-declaration": "^7.16.7",
|
|
17022
17016
|
"@babel/parser": "^7.18.0",
|
|
17023
|
-
"@babel/types": "^7.18.
|
|
17017
|
+
"@babel/types": "^7.18.2",
|
|
17024
17018
|
"debug": "^4.1.0",
|
|
17025
17019
|
"globals": "^11.1.0"
|
|
17026
17020
|
}
|
|
17027
17021
|
},
|
|
17028
17022
|
"@babel/types": {
|
|
17029
|
-
"version": "7.18.
|
|
17030
|
-
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.
|
|
17031
|
-
"integrity": "sha512-
|
|
17023
|
+
"version": "7.18.2",
|
|
17024
|
+
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.2.tgz",
|
|
17025
|
+
"integrity": "sha512-0On6B8A4/+mFUto5WERt3EEuG1NznDirvwca1O8UwXQHVY8g3R7OzYgxXdOfMwLO08UrpUD/2+3Bclyq+/C94Q==",
|
|
17032
17026
|
"dev": true,
|
|
17033
17027
|
"requires": {
|
|
17034
17028
|
"@babel/helper-validator-identifier": "^7.16.7",
|
|
@@ -20281,9 +20275,9 @@
|
|
|
20281
20275
|
}
|
|
20282
20276
|
},
|
|
20283
20277
|
"electron-to-chromium": {
|
|
20284
|
-
"version": "1.4.
|
|
20285
|
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.
|
|
20286
|
-
"integrity": "sha512-
|
|
20278
|
+
"version": "1.4.138",
|
|
20279
|
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.138.tgz",
|
|
20280
|
+
"integrity": "sha512-IOyp2Seq3w4QLln+yZWcMF3VXhhduz4bwg9gfI+CnP5TkzwNXQ8FCZuwwPsnes73AfWdf5J2n2OXdUwDUspDPQ==",
|
|
20287
20281
|
"dev": true
|
|
20288
20282
|
},
|
|
20289
20283
|
"emoji-regex": {
|
|
@@ -23716,9 +23710,9 @@
|
|
|
23716
23710
|
}
|
|
23717
23711
|
},
|
|
23718
23712
|
"node-releases": {
|
|
23719
|
-
"version": "2.0.
|
|
23720
|
-
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.
|
|
23721
|
-
"integrity": "sha512-
|
|
23713
|
+
"version": "2.0.5",
|
|
23714
|
+
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz",
|
|
23715
|
+
"integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==",
|
|
23722
23716
|
"dev": true
|
|
23723
23717
|
},
|
|
23724
23718
|
"nopt": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
// Disabling the eslint to keep this in a format which works on IE 11.
|
|
2
|
+
/* eslint-disable no-var */
|
|
3
|
+
/* eslint-disable no-redeclare */
|
|
4
|
+
/* eslint-disable object-shorthand */
|
|
5
|
+
/* eslint-disable one-var */
|
|
6
|
+
/* eslint-disable operator-linebreak */
|
|
7
|
+
|
|
8
|
+
'use strict';
|
|
3
9
|
|
|
10
|
+
var scroll = function (elementToScrollOn, elementToScrollTo, isScrollToElement, isDynamicScroll, expectedX, expectedY, shouldScrollLeft, shouldScrollTop) {
|
|
4
11
|
function doScroll(expectedPosition, element) {
|
|
5
12
|
if (!element) {
|
|
6
13
|
return { success: false };
|
|
@@ -17,7 +24,7 @@ var scroll = function (elementToScrollOn, elementToScrollTo, isScrollToElement,
|
|
|
17
24
|
|
|
18
25
|
function getExpectedPosition(parentElement, locatedElement, isScrollToElement, expectedX, expectedY, shouldScrollLeft, shouldScrollTop) {
|
|
19
26
|
if (!isScrollToElement) {
|
|
20
|
-
return {x: expectedX, y: expectedY};
|
|
27
|
+
return { x: expectedX, y: expectedY };
|
|
21
28
|
}
|
|
22
29
|
|
|
23
30
|
var target = getLocatedElement(locatedElement);
|
|
@@ -26,7 +33,7 @@ var scroll = function (elementToScrollOn, elementToScrollTo, isScrollToElement,
|
|
|
26
33
|
return { x: parentElement.scrollWidth, y: parentElement.scrollHeight };
|
|
27
34
|
}
|
|
28
35
|
|
|
29
|
-
if(!target) {
|
|
36
|
+
if (!target) {
|
|
30
37
|
throw new Error('could not find target element');
|
|
31
38
|
}
|
|
32
39
|
|
|
@@ -46,7 +53,7 @@ var scroll = function (elementToScrollOn, elementToScrollTo, isScrollToElement,
|
|
|
46
53
|
? parentElement.scrollLeft + targetRect.left - Math.min(expectedX, MAX_WIDTH)
|
|
47
54
|
: parentElement.scrollLeft;
|
|
48
55
|
|
|
49
|
-
return {x: Math.round(xScroll), y: Math.round(yScroll)};
|
|
56
|
+
return { x: Math.round(xScroll), y: Math.round(yScroll) };
|
|
50
57
|
}
|
|
51
58
|
|
|
52
59
|
var isDocument = !elementToScrollOn;
|
|
@@ -55,7 +62,7 @@ var scroll = function (elementToScrollOn, elementToScrollTo, isScrollToElement,
|
|
|
55
62
|
if (!elementToScrollOn) {
|
|
56
63
|
throw new Error('could not find target to scroll on');
|
|
57
64
|
}
|
|
58
|
-
var positionBeforeScroll = {top: elementToScrollOn.scrollTop, left: elementToScrollOn.scrollLeft};
|
|
65
|
+
var positionBeforeScroll = { top: elementToScrollOn.scrollTop, left: elementToScrollOn.scrollLeft };
|
|
59
66
|
var expectedPosition = getExpectedPosition(elementToScrollOn, elementToScrollTo, isScrollToElement, expectedX, expectedY, shouldScrollLeft, shouldScrollTop);
|
|
60
67
|
|
|
61
68
|
var result = doScroll(expectedPosition, elementToScrollOn);
|
|
@@ -71,7 +78,7 @@ var scroll = function (elementToScrollOn, elementToScrollTo, isScrollToElement,
|
|
|
71
78
|
var actualScrollToElement = getLocatedElement(elementToScrollTo);
|
|
72
79
|
|
|
73
80
|
if (isScrollToElement && isDynamicScroll && !actualScrollToElement) {
|
|
74
|
-
return { success: false, expectedPosition };
|
|
81
|
+
return { success: false, expectedPosition: expectedPosition };
|
|
75
82
|
}
|
|
76
83
|
|
|
77
84
|
if (isScrollToElement) {
|
|
@@ -82,7 +89,7 @@ var scroll = function (elementToScrollOn, elementToScrollTo, isScrollToElement,
|
|
|
82
89
|
actualXString = rect.left;
|
|
83
90
|
actualYString = rect.top;
|
|
84
91
|
}
|
|
85
|
-
return {success: result.success, actualX: actualXString, actualY: actualYString};
|
|
92
|
+
return { success: result.success, actualX: actualXString, actualY: actualYString };
|
|
86
93
|
};
|
|
87
94
|
|
|
88
95
|
module.exports = scroll;
|
package/player/webdriver.js
CHANGED
|
@@ -332,7 +332,7 @@ class WebDriver extends WebDriverApi {
|
|
|
332
332
|
}
|
|
333
333
|
|
|
334
334
|
getElementTextJS(locatedElement) {
|
|
335
|
-
function extractTextCode(locatedElement) {
|
|
335
|
+
function extractTextCode(locatedElement, ignoreHiddenTagsText) {
|
|
336
336
|
// copy of utils.getElementTextContent to run inside content script
|
|
337
337
|
// sadly .children doesn't work for SVG elements in IE11
|
|
338
338
|
function clearTitleTags(node) {
|
|
@@ -362,14 +362,15 @@ class WebDriver extends WebDriverApi {
|
|
|
362
362
|
return element.shadowRoot.textContent.replace(/(\r\n|\n|\r)/gm, "");
|
|
363
363
|
}
|
|
364
364
|
} catch (err) { }
|
|
365
|
-
if (
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
hiddenChildren.forEach(child
|
|
365
|
+
if (ignoreHiddenTagsText && Array.prototype.some.call(element.children, function (elem) { return elem.hidden; })) {
|
|
366
|
+
var dupElement = element.cloneNode(true);
|
|
367
|
+
var hiddenChildren = Array.prototype.filter.call(dupElement.children, function (elem) { return elem.hidden; });
|
|
368
|
+
hiddenChildren.forEach(function (child) {
|
|
369
369
|
dupElement.removeChild(child);
|
|
370
370
|
});
|
|
371
|
-
return dupElement.textContent.replace(/(\r\n|\n|\r)/gm,
|
|
372
|
-
}
|
|
371
|
+
return dupElement.textContent.replace(/(\r\n|\n|\r)/gm, '');
|
|
372
|
+
}
|
|
373
|
+
return element.textContent.replace(/(\r\n|\n|\r)/gm, '');
|
|
373
374
|
}
|
|
374
375
|
|
|
375
376
|
function getElementTextContent(element) {
|
|
@@ -399,7 +400,7 @@ class WebDriver extends WebDriverApi {
|
|
|
399
400
|
var getLocatedElement = ${codeSnippets().getLocatedElementCode};
|
|
400
401
|
var extractText = ${extractTextCode.toString()};
|
|
401
402
|
return extractText.apply(null, arguments)
|
|
402
|
-
`, locatedElement)
|
|
403
|
+
`, locatedElement, this.ignoreHiddenTagsText)
|
|
403
404
|
.then(result => result.value);
|
|
404
405
|
}
|
|
405
406
|
|
package/runOptions.js
CHANGED
|
@@ -187,6 +187,8 @@ program
|
|
|
187
187
|
.option('--token [token]', 'identification token to testim')
|
|
188
188
|
.option('--is-regression-baseline-run', 'save doms and run results as regression baseline data')
|
|
189
189
|
.option('--parallel [number-of-tests]', 'number of tests to run on parallel')
|
|
190
|
+
.option('--before-parallel [number-of-tests]', 'number of tests to run on parallel in the before phase of a test plan')
|
|
191
|
+
.option('--after-parallel [number-of-tests]', 'number of tests to run on parallel in the after phase of a test plan')
|
|
190
192
|
.option('--canary [canary-mode]', 'enable canary mode', false)
|
|
191
193
|
.option('--test-plan [test-plan-name]', 'test plan to run', collect, [])
|
|
192
194
|
.option('--test-plan-id [test-plan-id]', 'test plan to run', collect, [])
|
|
@@ -762,7 +764,9 @@ module.exports = {
|
|
|
762
764
|
|
|
763
765
|
const timeoutWasGiven = Boolean(program.timeout);
|
|
764
766
|
program.timeout = !program.timeout || typeof program.timeout === 'boolean' ? 10 * 60 * 1000 : Number(program.timeout);
|
|
767
|
+
program.beforeParallel = !program.beforeParallel || typeof program.beforeParallel === 'boolean' ? 1 : Number(program.beforeParallel);
|
|
765
768
|
program.parallel = !program.parallel || typeof program.parallel === 'boolean' ? 1 : Number(program.parallel);
|
|
769
|
+
program.afterParallel = !program.afterParallel || typeof program.afterParallel === 'boolean' ? 1 : Number(program.afterParallel);
|
|
766
770
|
|
|
767
771
|
|
|
768
772
|
if (program.parallel > 1 && program.run && !program.gridId && !program.grid &&
|
|
@@ -817,10 +821,18 @@ module.exports = {
|
|
|
817
821
|
throw new ArgError('test run timeout could not be a negative number, --timeout <run-timeout>');
|
|
818
822
|
}
|
|
819
823
|
|
|
824
|
+
if (program.beforeParallel <= 0 || _.isNaN(program.beforeParallel)) {
|
|
825
|
+
throw new ArgError('before-parallel could not be a negative number or not number, --before-parallel <number-of-tests>');
|
|
826
|
+
}
|
|
827
|
+
|
|
820
828
|
if (program.parallel <= 0 || _.isNaN(program.parallel)) {
|
|
821
829
|
throw new ArgError('parallel could not be a negative number or not number, --parallel <number-of-tests>');
|
|
822
830
|
}
|
|
823
831
|
|
|
832
|
+
if (program.afterParallel <= 0 || _.isNaN(program.afterParallel)) {
|
|
833
|
+
throw new ArgError('after-parallel could not be a negative number or not number, --after-parallel <number-of-tests>');
|
|
834
|
+
}
|
|
835
|
+
|
|
824
836
|
if (![CLI_MODE.EXTENSION, CLI_MODE.SELENIUM].includes(program.mode)) {
|
|
825
837
|
throw new ArgError(`runner mode <${program.mode}> is not supported`);
|
|
826
838
|
}
|
|
@@ -866,6 +878,10 @@ module.exports = {
|
|
|
866
878
|
);
|
|
867
879
|
}
|
|
868
880
|
|
|
881
|
+
if (!isTestPlanSpecified && (program.beforeParallel !== 1 || program.afterParallel !== 1)) {
|
|
882
|
+
throw new ArgError('cannot set --before-parallel or --after-parallel without --test-plan option');
|
|
883
|
+
}
|
|
884
|
+
|
|
869
885
|
if (
|
|
870
886
|
(program.testId.length ||
|
|
871
887
|
isTestPlanSpecified ||
|
|
@@ -1089,7 +1105,9 @@ module.exports = {
|
|
|
1089
1105
|
mode: program.mode,
|
|
1090
1106
|
isRegressionBaselineRun: program.isRegressionBaselineRun,
|
|
1091
1107
|
browser: program.browser,
|
|
1108
|
+
beforeParallel: program.beforeParallel,
|
|
1092
1109
|
parallel: program.parallel,
|
|
1110
|
+
afterParallel: program.afterParallel,
|
|
1093
1111
|
canary: program.canary,
|
|
1094
1112
|
rerunFailedByRunId: program.rerunFailedByRunId,
|
|
1095
1113
|
disableGridCheck: program.disableGridCheck,
|
|
@@ -50,6 +50,8 @@ class ParallelWorkerManager {
|
|
|
50
50
|
return undefined;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
let stoppedOnError = false;
|
|
54
|
+
let runningTests = 0;
|
|
53
55
|
const runAndWaitToComplete = token => new Promise((resolve, reject) => {
|
|
54
56
|
const projectId = options.project;
|
|
55
57
|
const executionQueue = new ExecutionQueue(executionId, executionName, testList, options, branchToUse, testStatus);
|
|
@@ -68,6 +70,7 @@ class ParallelWorkerManager {
|
|
|
68
70
|
const sessionType = utils.getSessionType(options);
|
|
69
71
|
|
|
70
72
|
const onTestStarted = (wid, testId, resultId, isRerun, testRetryKey) => {
|
|
73
|
+
runningTests++;
|
|
71
74
|
analyticsService.analyticsTestStart({
|
|
72
75
|
authData,
|
|
73
76
|
executionId,
|
|
@@ -88,6 +91,7 @@ class ParallelWorkerManager {
|
|
|
88
91
|
};
|
|
89
92
|
|
|
90
93
|
const onTestCompleted = async (wid, testId, testResult, sessionId, isRerun) => {
|
|
94
|
+
runningTests--;
|
|
91
95
|
const update = {};
|
|
92
96
|
if (lightweightMode && lightweightMode.onlyTestIdsNoSuite) {
|
|
93
97
|
update.show = true;
|
|
@@ -150,11 +154,11 @@ class ParallelWorkerManager {
|
|
|
150
154
|
isStartUp,
|
|
151
155
|
});
|
|
152
156
|
if (stopOnError && !testResult.success) {
|
|
153
|
-
|
|
154
|
-
|
|
157
|
+
executionQueue.stop();
|
|
158
|
+
stoppedOnError = true;
|
|
155
159
|
}
|
|
156
160
|
const completedTests = Object.keys(combinedTestResults).length;
|
|
157
|
-
if (completedTests === testCount) {
|
|
161
|
+
if (completedTests === testCount || (stoppedOnError && runningTests === 0)) {
|
|
158
162
|
resolve(combinedTestResults);
|
|
159
163
|
return undefined;
|
|
160
164
|
}
|
|
@@ -164,8 +168,9 @@ class ParallelWorkerManager {
|
|
|
164
168
|
const onTestIgnored = (wid, testResult) => {
|
|
165
169
|
combinedTestResults[testResult.resultId] = testResult;
|
|
166
170
|
testStatus.onTestIgnored(wid, testResult.resultId);
|
|
171
|
+
runningTests--;
|
|
167
172
|
const completedTests = Object.keys(combinedTestResults).length;
|
|
168
|
-
if (completedTests === testCount) {
|
|
173
|
+
if (completedTests === testCount || (stoppedOnError && runningTests === 0)) {
|
|
169
174
|
resolve(combinedTestResults);
|
|
170
175
|
}
|
|
171
176
|
};
|
|
@@ -195,7 +200,11 @@ class ParallelWorkerManager {
|
|
|
195
200
|
|
|
196
201
|
try {
|
|
197
202
|
const token = await testimCustomToken.getCustomTokenV3();
|
|
198
|
-
|
|
203
|
+
const result = await runAndWaitToComplete(token);
|
|
204
|
+
if (stoppedOnError) {
|
|
205
|
+
throw new StopRunOnError();
|
|
206
|
+
}
|
|
207
|
+
return result;
|
|
199
208
|
} catch (err) {
|
|
200
209
|
logger.error('failed running parallel workers', { executionId, err });
|
|
201
210
|
throw err;
|
|
@@ -35,7 +35,7 @@ class TestPlanRunner {
|
|
|
35
35
|
const authData = testimCustomToken.getTokenV3UserData();
|
|
36
36
|
|
|
37
37
|
const runBeforeTests = () => {
|
|
38
|
-
const workerCount = 1;
|
|
38
|
+
const workerCount = tpOptions.beforeParallel || 1;
|
|
39
39
|
const stopOnError = true;
|
|
40
40
|
return this.workerManager.runTests(beforeTests, testStatus, executionId, executionName, tpOptions, branchToUse, authData, workerCount, stopOnError)
|
|
41
41
|
.then(beforeTestsResults => Object.assign(executionResults, beforeTestsResults));
|
|
@@ -51,7 +51,7 @@ class TestPlanRunner {
|
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
const runAfterTests = () => {
|
|
54
|
-
const workerCount = 1;
|
|
54
|
+
const workerCount = tpOptions.afterParallel || 1;
|
|
55
55
|
const stopOnError = false;
|
|
56
56
|
return this.workerManager.runTests(afterTests, testStatus, executionId, executionName, tpOptions, branchToUse, authData, workerCount, stopOnError)
|
|
57
57
|
.then(afterTestsResults => Object.assign(executionResults, afterTestsResults));
|