@cmflow/cli 0.67.0 → 0.68.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cmflow/cli",
3
- "version": "0.67.0",
3
+ "version": "0.68.0",
4
4
  "description": "An awesome Git Flow",
5
5
  "author": "camfou",
6
6
  "license": "MIT",
@@ -57,6 +57,7 @@ export async function runCommand (klass, commander) {
57
57
  // eslint-disable-next-line no-console
58
58
  console.error(String(er.stack).replace(String(er), ''))
59
59
  }
60
+ process.exit(-1)
60
61
  }
61
62
  }
62
63
 
@@ -52,6 +52,7 @@ describe('runCommand', () => {
52
52
  }
53
53
 
54
54
  jest.spyOn(console, 'error').mockReturnValue(undefined)
55
+ jest.spyOn(process, 'exit').mockImplementation(() => {})
55
56
 
56
57
  await runCommand(Cmd, {
57
58
  prop: '1'
@@ -59,5 +60,6 @@ describe('runCommand', () => {
59
60
 
60
61
  // eslint-disable-next-line no-console
61
62
  expect(console.error).toHaveBeenCalled()
63
+ expect(process.exit).toHaveBeenCalledWith(-1)
62
64
  })
63
65
  })
@@ -59,7 +59,8 @@ export async function prepare (pluginConfig, context) {
59
59
  }
60
60
  break
61
61
  case 'cmflow':
62
- await bumpPackagesVersion(WORKSPACES)
62
+ await bumpPackagesVersion(context.nextRelease.version, WORKSPACES)
63
+ await pkgManager.install()
63
64
  break
64
65
  case 'native:lerna':
65
66
  default:
@@ -1,5 +1,6 @@
1
1
  import globby from 'globby'
2
2
  import fs from 'fs-extra'
3
+ import { dirname } from 'path'
3
4
 
4
5
  const PACKAGE_JSON_PROPS = ['dependencies', 'devDependencies', 'peerDependencies']
5
6
 
@@ -24,7 +25,7 @@ export async function bumpPackagesVersion (version, workspaces, cwd = process.cw
24
25
  }
25
26
  }))
26
27
 
27
- packages.map(({
28
+ return Promise.all(packages.map(({
28
29
  pkg,
29
30
  file
30
31
  }) => {
@@ -32,8 +33,9 @@ export async function bumpPackagesVersion (version, workspaces, cwd = process.cw
32
33
 
33
34
  PACKAGE_JSON_PROPS.forEach((key) => bumpDependencies(pkg, key, version, names))
34
35
 
35
- return fs.writeJson(file, pkg)
36
- })
36
+ fs.ensureDirSync(dirname(file))
37
+ return fs.writeFile(file, JSON.stringify(pkg, null, 2), { encoding: 'utf8' })
38
+ }))
37
39
  }
38
40
 
39
41
  function bumpDependencies (pkg, key, version, names) {
@@ -5,7 +5,8 @@ import fs from 'fs-extra'
5
5
  describe('bumpPackagesVersion()', () => {
6
6
  beforeEach(() => {
7
7
  jest.resetAllMocks()
8
- jest.spyOn(fs, 'writeJson')
8
+ jest.spyOn(fs, 'writeFile').mockResolvedValue()
9
+ jest.spyOn(fs, 'ensureDirSync').mockResolvedValue()
9
10
  })
10
11
 
11
12
  it('should upgrade dependencies (package manager: npm/yarn)', async () => {
@@ -13,52 +14,57 @@ describe('bumpPackagesVersion()', () => {
13
14
  'packages/*'
14
15
  ], path.join(__dirname, '__mock__/test1'))
15
16
 
16
- expect(fs.writeJson).toHaveBeenCalledWith(expect.any(String), {
17
- dependencies: { '@package/b': '1.1.0' },
17
+ const calls = fs.writeFile.mock.calls.sort(([a], [b]) => a > b ? -1 : 1)
18
+
19
+ expect(JSON.parse(calls[0][1])).toEqual({
20
+ version: '1.1.0',
21
+ name: '@package/b',
22
+ dependencies: {},
18
23
  devDependencies: {},
19
- name: '@package/a',
20
- peerDependencies: {},
21
- version: '1.1.0'
24
+ peerDependencies: {}
22
25
  })
23
26
 
24
- expect(fs.writeJson).toHaveBeenCalledWith(expect.any(String), {
25
- dependencies: {},
27
+ expect(JSON.parse(calls[1][1])).toEqual({
28
+ name: '@package/a',
29
+ version: '1.1.0',
30
+ dependencies: { '@package/b': '1.1.0' },
26
31
  devDependencies: {},
27
- name: '@package/b',
28
- peerDependencies: {},
29
- version: '1.1.0'
32
+ peerDependencies: {}
30
33
  })
31
34
 
32
- expect(fs.writeJson).toHaveBeenCalledWith(expect.any(String), {
35
+ expect(JSON.parse(calls[2][1])).toEqual({
36
+ name: '@package/root',
37
+ version: '1.1.0',
33
38
  dependencies: {},
34
39
  devDependencies: {},
35
- name: '@package/root',
36
- peerDependencies: {},
37
- version: '1.1.0'
40
+ peerDependencies: {}
38
41
  })
39
42
  })
40
43
  it('should upgrade dependencies (package manager: yarn berry)', async () => {
41
44
  await bumpPackagesVersion('1.1.0', [
42
45
  'packages/*'
43
46
  ], path.join(__dirname, '__mock__/test2'))
47
+ const calls = fs.writeFile.mock.calls.sort(([a], [b]) => a > b ? -1 : 1)
44
48
 
45
- expect(fs.writeJson).toHaveBeenCalledWith(expect.any(String), {
46
- dependencies: { '@package/b': 'workspace:*' },
49
+ expect(JSON.parse(calls[0][1])).toEqual({
50
+ dependencies: {},
47
51
  devDependencies: {},
48
- name: '@package/a',
52
+ name: '@package/b',
49
53
  peerDependencies: {},
50
54
  version: '1.1.0'
51
55
  })
52
56
 
53
- expect(fs.writeJson).toHaveBeenCalledWith(expect.any(String), {
54
- dependencies: {},
57
+ expect(JSON.parse(calls[1][1])).toEqual({
58
+ dependencies: {
59
+ '@package/b': 'workspace:*'
60
+ },
55
61
  devDependencies: {},
56
- name: '@package/b',
62
+ name: '@package/a',
57
63
  peerDependencies: {},
58
64
  version: '1.1.0'
59
65
  })
60
66
 
61
- expect(fs.writeJson).toHaveBeenCalledWith(expect.any(String), {
67
+ expect(JSON.parse(calls[2][1])).toEqual({
62
68
  dependencies: {},
63
69
  devDependencies: {},
64
70
  name: '@package/root',