@digigov/cli-test 0.5.26 → 0.6.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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "@ampproject/remapping@2.1.0": "sha512-d5RysTlJ7hmw5Tw4UxgxcY3lkMe92n8sXCcuLPAyIAHK6j8DefDwtGnVVDgOnv+RnEosulDJ9NPKQL27bDId0g==",
2
+ "@ampproject/remapping@2.1.1": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==",
3
3
  "@babel/code-frame@7.16.7": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
4
4
  "@babel/compat-data@7.17.0": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==",
5
5
  "@babel/core@7.12.13": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==",
@@ -62,8 +62,8 @@
62
62
  "@jest/test-sequencer@26.6.3_ts-node@8.10.2": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==",
63
63
  "@jest/transform@26.6.2": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==",
64
64
  "@jest/types@26.6.2": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
65
- "@jridgewell/resolve-uri@3.0.4": "sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==",
66
- "@jridgewell/sourcemap-codec@1.4.10": "sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==",
65
+ "@jridgewell/resolve-uri@3.0.5": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==",
66
+ "@jridgewell/sourcemap-codec@1.4.11": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==",
67
67
  "@jridgewell/trace-mapping@0.3.4": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==",
68
68
  "@sinonjs/commons@1.8.3": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
69
69
  "@sinonjs/fake-timers@6.0.1": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==",
@@ -81,7 +81,7 @@
81
81
  "@types/istanbul-reports@3.0.1": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
82
82
  "@types/jest@26.0.15": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==",
83
83
  "@types/node@14.14.9": "sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw==",
84
- "@types/node@16.11.22": "sha512-DYNtJWauMQ9RNpesl4aVothr97/tIJM8HbyOXJ0AYT1Z2bEjLHyfjOBPAQQVMLf8h3kSShYfNk8Wnto8B2zHUA==",
84
+ "@types/node@16.11.24": "sha512-Ezv33Rl4mIi6YdSHfIRNBd4Q9kUe5okiaw/ikvJiJDmuQZNW5kfdg7+oQPF8NO6sTcr3woIpj3jANzTXdvEZXA==",
85
85
  "@types/normalize-package-data@2.4.1": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
86
86
  "@types/prettier@2.4.4": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==",
87
87
  "@types/prop-types@15.7.4": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==",
@@ -137,7 +137,7 @@
137
137
  "callsites@3.1.0": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
138
138
  "camelcase@5.3.1": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
139
139
  "camelcase@6.3.0": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
140
- "caniuse-lite@1.0.30001310": "sha512-cb9xTV8k9HTIUA3GnPUJCk0meUnrHL5gy5QePfDjxHyNBcnzPzrHFv5GqfP7ue5b1ZyzZL0RJboD6hQlPXjhjg==",
140
+ "caniuse-lite@1.0.30001312": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==",
141
141
  "capture-exit@2.0.0": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==",
142
142
  "chalk@2.4.2": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
143
143
  "chalk@4.1.2": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
@@ -191,7 +191,7 @@
191
191
  "domexception@2.0.1": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
192
192
  "domhandler@4.3.0": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==",
193
193
  "domutils@2.8.0": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
194
- "electron-to-chromium@1.4.67": "sha512-A6a2jEPLueEDfb7kvh7/E94RKKnIb01qL+4I7RFxtajmo+G9F5Ei7HgY5PRbQ4RDrh6DGDW66P0hD5XI2nRAcg==",
194
+ "electron-to-chromium@1.4.68": "sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==",
195
195
  "emittery@0.7.2": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==",
196
196
  "emoji-regex@8.0.0": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
197
197
  "end-of-stream@1.4.4": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
@@ -376,7 +376,7 @@
376
376
  "mime-db@1.51.0": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==",
377
377
  "mime-types@2.1.34": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
378
378
  "mimic-fn@2.1.0": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
379
- "minimatch@3.0.5": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==",
379
+ "minimatch@3.1.1": "sha512-reLxBcKUPNBnc/sVtAbxgRVFSegoGeLaSjmphNhcwcolhYLRgtJscn5mRl6YRZNQv40Y7P6JM2YhSIsbL9OB5A==",
380
380
  "minimist@1.2.5": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
381
381
  "mixin-deep@1.3.2": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
382
382
  "moo@0.5.1": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==",
package/CHANGELOG.json CHANGED
@@ -1,6 +1,18 @@
1
1
  {
2
2
  "name": "@digigov/cli-test",
3
3
  "entries": [
4
+ {
5
+ "version": "0.6.0",
6
+ "tag": "@digigov/cli-test_v0.6.0",
7
+ "date": "Thu, 24 Feb 2022 14:51:06 GMT",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "comment": "Add test helpers to test cli, scaffolders and file system utilities"
12
+ }
13
+ ]
14
+ }
15
+ },
4
16
  {
5
17
  "version": "0.5.26",
6
18
  "tag": "@digigov/cli-test_v0.5.26",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Change Log - @digigov/cli-test
2
2
 
3
- This log was last generated on Thu, 10 Feb 2022 13:45:56 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 24 Feb 2022 14:51:06 GMT and should not be manually modified.
4
+
5
+ ## 0.6.0
6
+ Thu, 24 Feb 2022 14:51:06 GMT
7
+
8
+ ### Minor changes
9
+
10
+ - Add test helpers to test cli, scaffolders and file system utilities
4
11
 
5
12
  ## 0.5.26
6
13
  Thu, 10 Feb 2022 13:45:56 GMT
package/dirsum.js ADDED
@@ -0,0 +1,72 @@
1
+ const crypto = require('crypto');
2
+ const fs = require('fs');
3
+
4
+ function _summarize(method, hashes) {
5
+ const keys = Object.keys(hashes);
6
+ keys.sort();
7
+
8
+ const obj = {};
9
+ obj.files = hashes;
10
+ const hash = crypto.createHash(method);
11
+ for(let i = 0; i < keys.length; i++) {
12
+ if(typeof (hashes[keys[i]]) === 'string') {
13
+ hash.update(hashes[keys[i]]);
14
+ } else if(typeof (hashes[keys[i]]) === 'object') {
15
+ hash.update(hashes[keys[i]].hash);
16
+ } else {
17
+ console.error('Unknown type found in hash: ' + typeof (hashes[keys[i]]));
18
+ }
19
+ }
20
+
21
+ obj.hash = hash.digest('hex');
22
+ return obj;
23
+ }
24
+
25
+ const method = 'sha1';
26
+ function digest(root, options) {
27
+ if(!root || typeof (root) !== 'string') {
28
+ throw new TypeError('root is required (string)');
29
+ }
30
+ if(options.ignore){
31
+ if(root.match(options.ignore)){
32
+ return {hash: '', files: {}};
33
+ }
34
+ }
35
+ const hashes = {};
36
+ const files = fs.readdirSync(root);
37
+ if(files.length === 0) {
38
+ return {hash: '', files: {}};
39
+ }
40
+
41
+ let hashed = 0;
42
+ for(const f of files) {
43
+ const path = root + '/' + f;
44
+ const stats = fs.statSync(path);
45
+
46
+ if(stats.isDirectory()) {
47
+ const hash = digest(path, options);
48
+ hashes[f] = hash;
49
+ if(++hashed >= files.length) {
50
+ return _summarize(method, hashes);
51
+ }
52
+ } else if(stats.isFile()) {
53
+ const data = fs.readFileSync(path, 'utf8');
54
+
55
+ const hash = crypto.createHash(method);
56
+ hash.update(data);
57
+ hashes[f] = hash.digest('hex');
58
+
59
+ if(++hashed >= files.length) {
60
+ return _summarize(method, hashes);
61
+ }
62
+ } else {
63
+ console.error('Skipping hash of %s', f);
64
+ if(++hashed > files.length) {
65
+ return _summarize(method, hashes);
66
+ }
67
+ }
68
+ }
69
+ }
70
+ module.exports = {
71
+ digest: digest
72
+ };
package/jest.common.js CHANGED
@@ -12,7 +12,7 @@ function makeJestConfig(dir) {
12
12
  'babelTransformer.js'
13
13
  ),
14
14
  },
15
- setupFiles: [path.resolve(__dirname, 'setupTests.js')],
15
+ "setupFilesAfterEnv": [path.resolve(__dirname, 'setupTests.js')],
16
16
  snapshotSerializers: ['enzyme-to-json/serializer'],
17
17
  testPathIgnorePatterns: ['\\.history/.*'],
18
18
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digigov/cli-test",
3
- "version": "0.5.26",
3
+ "version": "0.6.0",
4
4
  "description": "Test plugin for Digigov CLI",
5
5
  "main": "index.js",
6
6
  "author": "GRNET Developers <devs@lists.grnet.gr>",
@@ -19,8 +19,8 @@
19
19
  "jest-cli": "26.6.3"
20
20
  },
21
21
  "peerDependencies": {
22
- "@digigov/cli": "0.5.26",
23
- "@digigov/cli-build": "0.6.3",
22
+ "@digigov/cli": "0.5.27",
23
+ "@digigov/cli-build": "0.7.1",
24
24
  "typescript": "4.2.3",
25
25
  "@types/node": "14.14.9",
26
26
  "@types/react": "16.9.56"
package/setupTests.js CHANGED
@@ -1,4 +1,70 @@
1
1
  const { configure } = require('enzyme');
2
2
  const React16Adapter = require('enzyme-adapter-react-16');
3
+ var {spawn} = require('child_process');
4
+ const {digest} = require('./dirsum')
3
5
 
6
+ global['digest'] = digest
7
+
8
+ class Cli {
9
+ constructor(options) {
10
+ this.output = '';
11
+ }
12
+ async run(command, options) {
13
+ return new Promise((resolve, reject) => {
14
+ const child = spawn(command, options);
15
+ child.stdout.on('data', data => {
16
+ // console.log(this.output);
17
+ this.output += data.toString();
18
+ });
19
+ this.command = child
20
+ resolve()
21
+ });
22
+ }
23
+ getOutput() {
24
+ return this.output;
25
+ }
26
+ }
27
+ global.Cli = Cli;
4
28
  configure({ adapter: new React16Adapter() });
29
+ // console.log(Object.keys(global))
30
+ const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
31
+ global['expect'].extend({
32
+ toSpawnCommand: async (cli, command, args) => {
33
+ await cli.run(command, args);
34
+ return {
35
+ pass: true,
36
+ message: () => `Spawned command ${command} ${args.join(' ')}`
37
+ }
38
+ },
39
+ toMatchContent: async (cli, text)=>{
40
+ while(true ){
41
+ const lastLine = cli.getOutput();
42
+ if(lastLine.match(text)){
43
+ break
44
+ }
45
+ await sleep(100)
46
+ }
47
+ return {
48
+ pass: true,
49
+ message: () => `Matches ${text}`
50
+ }
51
+ },
52
+ toEnter: async (cli, text)=>{
53
+ const keyPress ={
54
+ '_UP_': '\x1B[A',
55
+ '_DOWN_': '\x1B[B',
56
+ }
57
+ if(keyPress[text]){
58
+ text = keyPress[text]
59
+ }
60
+ cli.command.stdin.write(text);
61
+ cli.command.stdin.write('\n');
62
+ return {
63
+ pass: true,
64
+ message: () => `Entered ${text}`
65
+ }
66
+ }
67
+ })
68
+
69
+ global.path = require('path')
70
+
@@ -1,14 +0,0 @@
1
- {
2
- "files": {
3
- "tooling/cli-test/CHANGELOG.json": "147244b1ffb62ac138e02f47fc6cfd759759c78f",
4
- "tooling/cli-test/CHANGELOG.md": "bbaa8c36dfc686df266ad0a70ecc6e66ff38d411",
5
- "tooling/cli-test/babelTransformer.js": "271e13591a0aaca483eb49e043c567107b58e4b2",
6
- "tooling/cli-test/index.js": "8b1c22589b41f7defd89757e5cb24045c271ae07",
7
- "tooling/cli-test/jest.common.js": "aba4e9daf5d11e53e5f8f1428e37147d5d5faff4",
8
- "tooling/cli-test/jest.config.js": "4e614114a0600f0293ac9569739bf708fb742ba9",
9
- "tooling/cli-test/package.json": "495d580f00982039e9e590b8c927b2b76e8fc543",
10
- "tooling/cli-test/setupTests.js": "5d0aa41b25a7503e66d2c5933098f062fac7e27c",
11
- "tooling/cli-test/.rush/temp/shrinkwrap-deps.json": "38f3d00eeab6bb6a95a6fcaedf772e4608a2438f"
12
- },
13
- "arguments": ""
14
- }
@@ -1,14 +0,0 @@
1
- {
2
- "files": {
3
- "tooling/cli-test/CHANGELOG.json": "a8924790054ce14c54e04bb77dae720defc43ff7",
4
- "tooling/cli-test/CHANGELOG.md": "8c685b6e4fce0272ef4353a791dcccbccdda89ac",
5
- "tooling/cli-test/babelTransformer.js": "271e13591a0aaca483eb49e043c567107b58e4b2",
6
- "tooling/cli-test/index.js": "8b1c22589b41f7defd89757e5cb24045c271ae07",
7
- "tooling/cli-test/jest.common.js": "aba4e9daf5d11e53e5f8f1428e37147d5d5faff4",
8
- "tooling/cli-test/jest.config.js": "4e614114a0600f0293ac9569739bf708fb742ba9",
9
- "tooling/cli-test/package.json": "41f15512d76dc016e9141c7d0136cad20fb77c40",
10
- "tooling/cli-test/setupTests.js": "5d0aa41b25a7503e66d2c5933098f062fac7e27c",
11
- "tooling/cli-test/.rush/temp/shrinkwrap-deps.json": "f06c77709e1a2d7434f866b3a1928b62be5bb8c1"
12
- },
13
- "arguments": ""
14
- }
File without changes