@pingux/astro 2.221.1 → 2.221.2
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.
|
@@ -36,7 +36,7 @@ function _regeneratorAsyncIterator(t, e) { function n(r, o, i, f) { try { var c
|
|
|
36
36
|
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof _Symbol ? _Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = _Object$create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: _bindInstanceProperty(d).call(d, e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = _Object$getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = _Object$create(c); function f(e) { return _Object$setPrototypeOf ? _Object$setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = _Object$create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
37
37
|
function _regeneratorDefine2(e, r, n, t) { var i = _Object$defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
38
38
|
function _OverloadYield(e, d) { this.v = e, this.k = d; } // Emotion Cache added as test fails otherwise, root cause of this failure is unknown.
|
|
39
|
-
// Failure
|
|
39
|
+
// Failure occurred with ThemeUI refactor.
|
|
40
40
|
// https://github.com/emotion-js/emotion/issues/1105#issuecomment-557726922
|
|
41
41
|
var emotionCache = (0, _cache["default"])({
|
|
42
42
|
key: 'stepper-test'
|
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
|
6
|
+
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
8
|
+
var _forEachInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
|
9
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
|
10
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
|
11
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
12
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
13
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
14
|
+
var _fromEntries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/from-entries"));
|
|
15
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
16
|
+
var _entries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/entries"));
|
|
17
|
+
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
|
|
18
|
+
var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
|
|
19
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
21
|
+
var os = _interopRequireWildcard(require("node:os"));
|
|
22
|
+
var path = _interopRequireWildcard(require("node:path"));
|
|
23
|
+
var _stableRelease = require("../../../../stableRelease");
|
|
24
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
25
|
+
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
26
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty2(_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty2(_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } // This test exercises the repository-root release script from the Astro package.
|
|
27
|
+
/* eslint-disable @nx/enforce-module-boundaries, import/no-relative-packages */
|
|
28
|
+
/* eslint-enable @nx/enforce-module-boundaries, import/no-relative-packages */
|
|
29
|
+
|
|
30
|
+
var mockReleaseChangelog = jest.fn();
|
|
31
|
+
var mockReleasePublish = jest.fn();
|
|
32
|
+
var mockReleaseVersion = jest.fn();
|
|
33
|
+
var mockCreateProjectGraphAsync = jest.fn();
|
|
34
|
+
var mockWriteFileSync = jest.fn();
|
|
35
|
+
var mockYargsParseAsync = jest.fn().mockResolvedValue({
|
|
36
|
+
dryRun: true,
|
|
37
|
+
verbose: false
|
|
38
|
+
});
|
|
39
|
+
jest.mock('nx/release', function () {
|
|
40
|
+
return {
|
|
41
|
+
releaseChangelog: mockReleaseChangelog,
|
|
42
|
+
releasePublish: mockReleasePublish,
|
|
43
|
+
releaseVersion: mockReleaseVersion
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
jest.mock('nx/src/project-graph/project-graph', function () {
|
|
47
|
+
return {
|
|
48
|
+
createProjectGraphAsync: mockCreateProjectGraphAsync
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
jest.mock('node:fs', function () {
|
|
52
|
+
return _objectSpread(_objectSpread({}, jest.requireActual('node:fs')), {}, {
|
|
53
|
+
writeFileSync: mockWriteFileSync
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
jest.mock('yargs', function () {
|
|
57
|
+
return {
|
|
58
|
+
option: jest.fn().mockReturnThis(),
|
|
59
|
+
parseAsync: mockYargsParseAsync,
|
|
60
|
+
version: jest.fn().mockReturnThis()
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
var packageData = function packageData(manifests) {
|
|
64
|
+
var _context;
|
|
65
|
+
return (0, _fromEntries["default"])((0, _map["default"])(_context = (0, _entries["default"])(manifests)).call(_context, function (_ref) {
|
|
66
|
+
var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
67
|
+
projectName = _ref2[0],
|
|
68
|
+
manifest = _ref2[1];
|
|
69
|
+
return [projectName, {
|
|
70
|
+
manifest: manifest
|
|
71
|
+
}];
|
|
72
|
+
}));
|
|
73
|
+
};
|
|
74
|
+
describe('calculatePlannedVersions', function () {
|
|
75
|
+
test('prefers an existing new version, including an alpha promotion value', function () {
|
|
76
|
+
var projectsVersionData = {
|
|
77
|
+
astro: {
|
|
78
|
+
currentVersion: '4.2.0-alpha.1',
|
|
79
|
+
newVersion: '4.2.0'
|
|
80
|
+
},
|
|
81
|
+
wrapper: {
|
|
82
|
+
currentVersion: '2.1.3',
|
|
83
|
+
newVersion: '2.1.4'
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
expect((0, _stableRelease.calculatePlannedVersions)(['astro', 'wrapper'], projectsVersionData, packageData({
|
|
87
|
+
astro: {
|
|
88
|
+
version: '99.0.0'
|
|
89
|
+
},
|
|
90
|
+
wrapper: {
|
|
91
|
+
version: '99.0.0'
|
|
92
|
+
}
|
|
93
|
+
}))).toEqual({
|
|
94
|
+
astro: '4.2.0',
|
|
95
|
+
wrapper: '2.1.4'
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
test('increments the current version and then falls back to the manifest version', function () {
|
|
99
|
+
expect((0, _stableRelease.calculatePlannedVersions)(['current', 'manifest'], {
|
|
100
|
+
current: {
|
|
101
|
+
currentVersion: '1.2.3'
|
|
102
|
+
},
|
|
103
|
+
manifest: {}
|
|
104
|
+
}, packageData({
|
|
105
|
+
current: {
|
|
106
|
+
version: '9.9.9'
|
|
107
|
+
},
|
|
108
|
+
manifest: {
|
|
109
|
+
version: '2.4.0'
|
|
110
|
+
}
|
|
111
|
+
}))).toEqual({
|
|
112
|
+
current: '1.2.4',
|
|
113
|
+
manifest: '2.4.1'
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
test('throws the exact error for missing or invalid version data without mutating inputs', function () {
|
|
117
|
+
var projectsVersionData = {
|
|
118
|
+
missing: {
|
|
119
|
+
currentVersion: null,
|
|
120
|
+
newVersion: null
|
|
121
|
+
},
|
|
122
|
+
invalid: {
|
|
123
|
+
currentVersion: 'not-a-version'
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
var manifests = packageData({
|
|
127
|
+
missing: {},
|
|
128
|
+
invalid: {
|
|
129
|
+
version: 'also-invalid'
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
var projectsVersionDataBefore = JSON.parse((0, _stringify["default"])(projectsVersionData));
|
|
133
|
+
var manifestsBefore = JSON.parse((0, _stringify["default"])(manifests));
|
|
134
|
+
expect(function () {
|
|
135
|
+
return (0, _stableRelease.calculatePlannedVersions)(['missing'], projectsVersionData, manifests);
|
|
136
|
+
}).toThrow('Unable to calculate a stable version for missing.');
|
|
137
|
+
expect(function () {
|
|
138
|
+
return (0, _stableRelease.calculatePlannedVersions)(['invalid'], projectsVersionData, manifests);
|
|
139
|
+
}).toThrow('Unable to calculate a stable version for invalid.');
|
|
140
|
+
expect(projectsVersionData).toEqual(projectsVersionDataBefore);
|
|
141
|
+
expect(manifests).toEqual(manifestsBefore);
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
describe('updateDependencyRange', function () {
|
|
145
|
+
test.each([['^1.2.3', '1.2.4', '^1.2.4'], ['~1.2.3', '1.2.4', '~1.2.4'], ['=1.2.3', '1.2.4', '=1.2.4'], ['1.2.3', '1.2.4', '1.2.4'], ['workspace:^1.2.3', '1.2.4', 'workspace:^1.2.4'], ['workspace:~1.2.3', '1.2.4', 'workspace:~1.2.4'], ['workspace:*', '1.2.4', 'workspace:1.2.4'], ['file:../pkg', '1.2.4', 'file:../pkg'], ['link:../pkg', '1.2.4', 'link:../pkg']])('transforms %s to %s', function (range, version, expected) {
|
|
146
|
+
expect((0, _stableRelease.updateDependencyRange)(range, version)).toBe(expected);
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
describe('updateDependencyRanges', function () {
|
|
150
|
+
test('updates the target in every supported dependency field and reports each change', function () {
|
|
151
|
+
var manifest = {
|
|
152
|
+
name: '@pingux/source',
|
|
153
|
+
dependencies: {
|
|
154
|
+
'@pingux/target': '^1.2.3',
|
|
155
|
+
unrelated: '~4.0.0'
|
|
156
|
+
},
|
|
157
|
+
devDependencies: {
|
|
158
|
+
'@pingux/target': 'workspace:^1.2.3'
|
|
159
|
+
},
|
|
160
|
+
optionalDependencies: {
|
|
161
|
+
'@pingux/target': 'workspace:*'
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
var dependenciesBefore = manifest.dependencies;
|
|
165
|
+
var devDependenciesBefore = manifest.devDependencies;
|
|
166
|
+
var optionalDependenciesBefore = manifest.optionalDependencies;
|
|
167
|
+
var result = (0, _stableRelease.updateDependencyRanges)(manifest, '@pingux/target', '1.2.4');
|
|
168
|
+
expect(result.manifest).toEqual(_objectSpread(_objectSpread({}, manifest), {}, {
|
|
169
|
+
dependencies: {
|
|
170
|
+
'@pingux/target': '^1.2.4',
|
|
171
|
+
unrelated: '~4.0.0'
|
|
172
|
+
},
|
|
173
|
+
devDependencies: {
|
|
174
|
+
'@pingux/target': 'workspace:^1.2.4'
|
|
175
|
+
},
|
|
176
|
+
optionalDependencies: {
|
|
177
|
+
'@pingux/target': 'workspace:1.2.4'
|
|
178
|
+
}
|
|
179
|
+
}));
|
|
180
|
+
expect(result.changes).toEqual([{
|
|
181
|
+
field: 'dependencies',
|
|
182
|
+
name: '@pingux/target',
|
|
183
|
+
currentRange: '^1.2.3',
|
|
184
|
+
nextRange: '^1.2.4'
|
|
185
|
+
}, {
|
|
186
|
+
field: 'devDependencies',
|
|
187
|
+
name: '@pingux/target',
|
|
188
|
+
currentRange: 'workspace:^1.2.3',
|
|
189
|
+
nextRange: 'workspace:^1.2.4'
|
|
190
|
+
}, {
|
|
191
|
+
field: 'optionalDependencies',
|
|
192
|
+
name: '@pingux/target',
|
|
193
|
+
currentRange: 'workspace:*',
|
|
194
|
+
nextRange: 'workspace:1.2.4'
|
|
195
|
+
}]);
|
|
196
|
+
expect(manifest.dependencies).toBe(dependenciesBefore);
|
|
197
|
+
expect(manifest.devDependencies).toBe(devDependenciesBefore);
|
|
198
|
+
expect(manifest.optionalDependencies).toBe(optionalDependenciesBefore);
|
|
199
|
+
expect(manifest).toEqual({
|
|
200
|
+
name: '@pingux/source',
|
|
201
|
+
dependencies: {
|
|
202
|
+
'@pingux/target': '^1.2.3',
|
|
203
|
+
unrelated: '~4.0.0'
|
|
204
|
+
},
|
|
205
|
+
devDependencies: {
|
|
206
|
+
'@pingux/target': 'workspace:^1.2.3'
|
|
207
|
+
},
|
|
208
|
+
optionalDependencies: {
|
|
209
|
+
'@pingux/target': 'workspace:*'
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
test('leaves unrelated, absent, equal, and local-protocol entries unchanged', function () {
|
|
214
|
+
var manifest = {
|
|
215
|
+
name: '@pingux/source',
|
|
216
|
+
dependencies: {
|
|
217
|
+
'@pingux/target': 'file:../target',
|
|
218
|
+
unrelated: '^4.0.0'
|
|
219
|
+
},
|
|
220
|
+
devDependencies: {
|
|
221
|
+
'@pingux/target': 'link:../target'
|
|
222
|
+
},
|
|
223
|
+
optionalDependencies: {
|
|
224
|
+
'@pingux/target': '^1.2.4'
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
var result = (0, _stableRelease.updateDependencyRanges)(manifest, '@pingux/target', '1.2.4');
|
|
228
|
+
expect(result.changes).toEqual([]);
|
|
229
|
+
expect(result.manifest).toEqual(manifest);
|
|
230
|
+
expect(result.manifest).not.toBe(manifest);
|
|
231
|
+
expect(result.manifest.dependencies).toBe(manifest.dependencies);
|
|
232
|
+
expect(result.manifest.devDependencies).toBe(manifest.devDependencies);
|
|
233
|
+
expect(result.manifest.optionalDependencies).toBe(manifest.optionalDependencies);
|
|
234
|
+
});
|
|
235
|
+
test.each([['dependencies', {
|
|
236
|
+
name: '@pingux/source',
|
|
237
|
+
devDependencies: {
|
|
238
|
+
'@pingux/target': '^1.2.3'
|
|
239
|
+
},
|
|
240
|
+
optionalDependencies: {
|
|
241
|
+
unrelated: '~4.0.0'
|
|
242
|
+
}
|
|
243
|
+
}, {
|
|
244
|
+
name: '@pingux/source',
|
|
245
|
+
devDependencies: {
|
|
246
|
+
'@pingux/target': '^1.2.4'
|
|
247
|
+
},
|
|
248
|
+
optionalDependencies: {
|
|
249
|
+
unrelated: '~4.0.0'
|
|
250
|
+
}
|
|
251
|
+
}, [{
|
|
252
|
+
field: 'devDependencies',
|
|
253
|
+
name: '@pingux/target',
|
|
254
|
+
currentRange: '^1.2.3',
|
|
255
|
+
nextRange: '^1.2.4'
|
|
256
|
+
}]], ['devDependencies', {
|
|
257
|
+
name: '@pingux/source',
|
|
258
|
+
dependencies: {
|
|
259
|
+
'@pingux/target': '~1.2.3'
|
|
260
|
+
},
|
|
261
|
+
optionalDependencies: {
|
|
262
|
+
unrelated: '~4.0.0'
|
|
263
|
+
}
|
|
264
|
+
}, {
|
|
265
|
+
name: '@pingux/source',
|
|
266
|
+
dependencies: {
|
|
267
|
+
'@pingux/target': '~1.2.4'
|
|
268
|
+
},
|
|
269
|
+
optionalDependencies: {
|
|
270
|
+
unrelated: '~4.0.0'
|
|
271
|
+
}
|
|
272
|
+
}, [{
|
|
273
|
+
field: 'dependencies',
|
|
274
|
+
name: '@pingux/target',
|
|
275
|
+
currentRange: '~1.2.3',
|
|
276
|
+
nextRange: '~1.2.4'
|
|
277
|
+
}]], ['optionalDependencies', {
|
|
278
|
+
name: '@pingux/source',
|
|
279
|
+
dependencies: {
|
|
280
|
+
'@pingux/target': 'workspace:*'
|
|
281
|
+
},
|
|
282
|
+
devDependencies: {
|
|
283
|
+
unrelated: '^4.0.0'
|
|
284
|
+
}
|
|
285
|
+
}, {
|
|
286
|
+
name: '@pingux/source',
|
|
287
|
+
dependencies: {
|
|
288
|
+
'@pingux/target': 'workspace:1.2.4'
|
|
289
|
+
},
|
|
290
|
+
devDependencies: {
|
|
291
|
+
unrelated: '^4.0.0'
|
|
292
|
+
}
|
|
293
|
+
}, [{
|
|
294
|
+
field: 'dependencies',
|
|
295
|
+
name: '@pingux/target',
|
|
296
|
+
currentRange: 'workspace:*',
|
|
297
|
+
nextRange: 'workspace:1.2.4'
|
|
298
|
+
}]]])('preserves omitted %s fields without spurious changes', function (omittedField, manifest, expectedManifest, expectedChanges) {
|
|
299
|
+
var result = (0, _stableRelease.updateDependencyRanges)(manifest, '@pingux/target', '1.2.4');
|
|
300
|
+
expect(result.manifest).toEqual(expectedManifest);
|
|
301
|
+
expect(result.changes).toEqual(expectedChanges);
|
|
302
|
+
expect(result.manifest).not.toHaveProperty(omittedField);
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
describe('assertDistManifestVersions', function () {
|
|
306
|
+
// node:fs is mocked module-wide for the release script assertions, so the
|
|
307
|
+
// setup helpers use the real filesystem functions directly.
|
|
308
|
+
var realFs = jest.requireActual('node:fs');
|
|
309
|
+
var distPackageJson = function distPackageJson(projectName, version) {
|
|
310
|
+
var distDir = path.join(process.cwd(), 'dist', projectName);
|
|
311
|
+
var manifestPath = path.join(distDir, 'package.json');
|
|
312
|
+
realFs.mkdirSync(distDir, {
|
|
313
|
+
recursive: true
|
|
314
|
+
});
|
|
315
|
+
realFs.writeFileSync(manifestPath, (0, _stringify["default"])({
|
|
316
|
+
name: "@pingux/".concat(projectName),
|
|
317
|
+
version: version
|
|
318
|
+
}), 'utf8');
|
|
319
|
+
return manifestPath;
|
|
320
|
+
};
|
|
321
|
+
var tempDirs = [];
|
|
322
|
+
var useTempCwd = function useTempCwd() {
|
|
323
|
+
var tempDir = realFs.mkdtempSync(path.join(os.tmpdir(), 'stable-release-dist-'));
|
|
324
|
+
tempDirs.push(tempDir);
|
|
325
|
+
jest.spyOn(process, 'cwd').mockReturnValue(tempDir);
|
|
326
|
+
return tempDir;
|
|
327
|
+
};
|
|
328
|
+
afterEach(function () {
|
|
329
|
+
(0, _forEach["default"])(tempDirs).call(tempDirs, function (tempDir) {
|
|
330
|
+
return realFs.rmSync(tempDir, {
|
|
331
|
+
recursive: true,
|
|
332
|
+
force: true
|
|
333
|
+
});
|
|
334
|
+
});
|
|
335
|
+
tempDirs = [];
|
|
336
|
+
jest.restoreAllMocks();
|
|
337
|
+
});
|
|
338
|
+
test('passes when every dist manifest matches the expected version', function () {
|
|
339
|
+
useTempCwd();
|
|
340
|
+
distPackageJson('astro', '2.221.2');
|
|
341
|
+
distPackageJson('onyx-tokens', '0.41.4');
|
|
342
|
+
expect(function () {
|
|
343
|
+
return (0, _stableRelease.assertDistManifestVersions)({
|
|
344
|
+
astro: '2.221.2',
|
|
345
|
+
'onyx-tokens': '0.41.4'
|
|
346
|
+
});
|
|
347
|
+
}).not.toThrow();
|
|
348
|
+
});
|
|
349
|
+
test('throws when a dist manifest is missing, stale, or unversioned', function () {
|
|
350
|
+
useTempCwd();
|
|
351
|
+
distPackageJson('astro', '2.221.3-alpha.0');
|
|
352
|
+
distPackageJson('onyx-tokens', undefined);
|
|
353
|
+
expect(function () {
|
|
354
|
+
return (0, _stableRelease.assertDistManifestVersions)({
|
|
355
|
+
astro: '2.221.2'
|
|
356
|
+
});
|
|
357
|
+
}).toThrow('dist manifest is 2.221.3-alpha.0 but the release version is 2.221.2');
|
|
358
|
+
expect(function () {
|
|
359
|
+
return (0, _stableRelease.assertDistManifestVersions)({
|
|
360
|
+
'onyx-tokens': '0.41.4'
|
|
361
|
+
});
|
|
362
|
+
}).toThrow('dist manifest is missing a version but the release version is 0.41.4');
|
|
363
|
+
expect(function () {
|
|
364
|
+
return (0, _stableRelease.assertDistManifestVersions)({
|
|
365
|
+
'onyx-wrapper': '0.41.3'
|
|
366
|
+
});
|
|
367
|
+
}).toThrow(/missing .*dist\/onyx-wrapper\/package\.json/);
|
|
368
|
+
});
|
|
369
|
+
});
|
|
370
|
+
describe('stableRelease module import', function () {
|
|
371
|
+
test('does not start release orchestration or write output when imported', function () {
|
|
372
|
+
var processExit = jest.spyOn(process, 'exit').mockImplementation(function () {
|
|
373
|
+
throw new Error('process.exit should not be called while importing stableRelease');
|
|
374
|
+
});
|
|
375
|
+
try {
|
|
376
|
+
jest.resetModules();
|
|
377
|
+
jest.isolateModules(function () {
|
|
378
|
+
// The module must be loaded inside isolateModules to verify import-time behavior.
|
|
379
|
+
// eslint-disable-next-line global-require
|
|
380
|
+
require('../../../../stableRelease');
|
|
381
|
+
});
|
|
382
|
+
expect(mockYargsParseAsync).not.toHaveBeenCalled();
|
|
383
|
+
expect(mockCreateProjectGraphAsync).not.toHaveBeenCalled();
|
|
384
|
+
expect(mockReleaseVersion).not.toHaveBeenCalled();
|
|
385
|
+
expect(mockReleaseChangelog).not.toHaveBeenCalled();
|
|
386
|
+
expect(mockReleasePublish).not.toHaveBeenCalled();
|
|
387
|
+
expect(mockWriteFileSync).not.toHaveBeenCalled();
|
|
388
|
+
expect(processExit).not.toHaveBeenCalled();
|
|
389
|
+
} finally {
|
|
390
|
+
processExit.mockRestore();
|
|
391
|
+
}
|
|
392
|
+
});
|
|
393
|
+
});
|
|
@@ -35,7 +35,7 @@ import Text from '../Text';
|
|
|
35
35
|
import Stepper from './Stepper';
|
|
36
36
|
|
|
37
37
|
// Emotion Cache added as test fails otherwise, root cause of this failure is unknown.
|
|
38
|
-
// Failure
|
|
38
|
+
// Failure occurred with ThemeUI refactor.
|
|
39
39
|
// https://github.com/emotion-js/emotion/issues/1105#issuecomment-557726922
|
|
40
40
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
41
41
|
var emotionCache = createCache({
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
2
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
|
3
|
+
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
|
4
|
+
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
|
5
|
+
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
|
6
|
+
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
|
7
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
|
8
|
+
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
|
9
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
10
|
+
import _Object$fromEntries from "@babel/runtime-corejs3/core-js-stable/object/from-entries";
|
|
11
|
+
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
12
|
+
import _Object$entries from "@babel/runtime-corejs3/core-js-stable/object/entries";
|
|
13
|
+
import _JSON$stringify from "@babel/runtime-corejs3/core-js-stable/json/stringify";
|
|
14
|
+
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
|
15
|
+
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
|
+
// This test exercises the repository-root release script from the Astro package.
|
|
18
|
+
|
|
19
|
+
import * as os from 'node:os';
|
|
20
|
+
import * as path from 'node:path';
|
|
21
|
+
|
|
22
|
+
/* eslint-disable @nx/enforce-module-boundaries, import/no-relative-packages */
|
|
23
|
+
import { assertDistManifestVersions, calculatePlannedVersions, updateDependencyRange, updateDependencyRanges } from '../../../../stableRelease';
|
|
24
|
+
/* eslint-enable @nx/enforce-module-boundaries, import/no-relative-packages */
|
|
25
|
+
|
|
26
|
+
var mockReleaseChangelog = jest.fn();
|
|
27
|
+
var mockReleasePublish = jest.fn();
|
|
28
|
+
var mockReleaseVersion = jest.fn();
|
|
29
|
+
var mockCreateProjectGraphAsync = jest.fn();
|
|
30
|
+
var mockWriteFileSync = jest.fn();
|
|
31
|
+
var mockYargsParseAsync = jest.fn().mockResolvedValue({
|
|
32
|
+
dryRun: true,
|
|
33
|
+
verbose: false
|
|
34
|
+
});
|
|
35
|
+
jest.mock('nx/release', function () {
|
|
36
|
+
return {
|
|
37
|
+
releaseChangelog: mockReleaseChangelog,
|
|
38
|
+
releasePublish: mockReleasePublish,
|
|
39
|
+
releaseVersion: mockReleaseVersion
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
jest.mock('nx/src/project-graph/project-graph', function () {
|
|
43
|
+
return {
|
|
44
|
+
createProjectGraphAsync: mockCreateProjectGraphAsync
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
jest.mock('node:fs', function () {
|
|
48
|
+
return _objectSpread(_objectSpread({}, jest.requireActual('node:fs')), {}, {
|
|
49
|
+
writeFileSync: mockWriteFileSync
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
jest.mock('yargs', function () {
|
|
53
|
+
return {
|
|
54
|
+
option: jest.fn().mockReturnThis(),
|
|
55
|
+
parseAsync: mockYargsParseAsync,
|
|
56
|
+
version: jest.fn().mockReturnThis()
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
var packageData = function packageData(manifests) {
|
|
60
|
+
var _context;
|
|
61
|
+
return _Object$fromEntries(_mapInstanceProperty(_context = _Object$entries(manifests)).call(_context, function (_ref) {
|
|
62
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
63
|
+
projectName = _ref2[0],
|
|
64
|
+
manifest = _ref2[1];
|
|
65
|
+
return [projectName, {
|
|
66
|
+
manifest: manifest
|
|
67
|
+
}];
|
|
68
|
+
}));
|
|
69
|
+
};
|
|
70
|
+
describe('calculatePlannedVersions', function () {
|
|
71
|
+
test('prefers an existing new version, including an alpha promotion value', function () {
|
|
72
|
+
var projectsVersionData = {
|
|
73
|
+
astro: {
|
|
74
|
+
currentVersion: '4.2.0-alpha.1',
|
|
75
|
+
newVersion: '4.2.0'
|
|
76
|
+
},
|
|
77
|
+
wrapper: {
|
|
78
|
+
currentVersion: '2.1.3',
|
|
79
|
+
newVersion: '2.1.4'
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
expect(calculatePlannedVersions(['astro', 'wrapper'], projectsVersionData, packageData({
|
|
83
|
+
astro: {
|
|
84
|
+
version: '99.0.0'
|
|
85
|
+
},
|
|
86
|
+
wrapper: {
|
|
87
|
+
version: '99.0.0'
|
|
88
|
+
}
|
|
89
|
+
}))).toEqual({
|
|
90
|
+
astro: '4.2.0',
|
|
91
|
+
wrapper: '2.1.4'
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
test('increments the current version and then falls back to the manifest version', function () {
|
|
95
|
+
expect(calculatePlannedVersions(['current', 'manifest'], {
|
|
96
|
+
current: {
|
|
97
|
+
currentVersion: '1.2.3'
|
|
98
|
+
},
|
|
99
|
+
manifest: {}
|
|
100
|
+
}, packageData({
|
|
101
|
+
current: {
|
|
102
|
+
version: '9.9.9'
|
|
103
|
+
},
|
|
104
|
+
manifest: {
|
|
105
|
+
version: '2.4.0'
|
|
106
|
+
}
|
|
107
|
+
}))).toEqual({
|
|
108
|
+
current: '1.2.4',
|
|
109
|
+
manifest: '2.4.1'
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
test('throws the exact error for missing or invalid version data without mutating inputs', function () {
|
|
113
|
+
var projectsVersionData = {
|
|
114
|
+
missing: {
|
|
115
|
+
currentVersion: null,
|
|
116
|
+
newVersion: null
|
|
117
|
+
},
|
|
118
|
+
invalid: {
|
|
119
|
+
currentVersion: 'not-a-version'
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
var manifests = packageData({
|
|
123
|
+
missing: {},
|
|
124
|
+
invalid: {
|
|
125
|
+
version: 'also-invalid'
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
var projectsVersionDataBefore = JSON.parse(_JSON$stringify(projectsVersionData));
|
|
129
|
+
var manifestsBefore = JSON.parse(_JSON$stringify(manifests));
|
|
130
|
+
expect(function () {
|
|
131
|
+
return calculatePlannedVersions(['missing'], projectsVersionData, manifests);
|
|
132
|
+
}).toThrow('Unable to calculate a stable version for missing.');
|
|
133
|
+
expect(function () {
|
|
134
|
+
return calculatePlannedVersions(['invalid'], projectsVersionData, manifests);
|
|
135
|
+
}).toThrow('Unable to calculate a stable version for invalid.');
|
|
136
|
+
expect(projectsVersionData).toEqual(projectsVersionDataBefore);
|
|
137
|
+
expect(manifests).toEqual(manifestsBefore);
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
describe('updateDependencyRange', function () {
|
|
141
|
+
test.each([['^1.2.3', '1.2.4', '^1.2.4'], ['~1.2.3', '1.2.4', '~1.2.4'], ['=1.2.3', '1.2.4', '=1.2.4'], ['1.2.3', '1.2.4', '1.2.4'], ['workspace:^1.2.3', '1.2.4', 'workspace:^1.2.4'], ['workspace:~1.2.3', '1.2.4', 'workspace:~1.2.4'], ['workspace:*', '1.2.4', 'workspace:1.2.4'], ['file:../pkg', '1.2.4', 'file:../pkg'], ['link:../pkg', '1.2.4', 'link:../pkg']])('transforms %s to %s', function (range, version, expected) {
|
|
142
|
+
expect(updateDependencyRange(range, version)).toBe(expected);
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
describe('updateDependencyRanges', function () {
|
|
146
|
+
test('updates the target in every supported dependency field and reports each change', function () {
|
|
147
|
+
var manifest = {
|
|
148
|
+
name: '@pingux/source',
|
|
149
|
+
dependencies: {
|
|
150
|
+
'@pingux/target': '^1.2.3',
|
|
151
|
+
unrelated: '~4.0.0'
|
|
152
|
+
},
|
|
153
|
+
devDependencies: {
|
|
154
|
+
'@pingux/target': 'workspace:^1.2.3'
|
|
155
|
+
},
|
|
156
|
+
optionalDependencies: {
|
|
157
|
+
'@pingux/target': 'workspace:*'
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
var dependenciesBefore = manifest.dependencies;
|
|
161
|
+
var devDependenciesBefore = manifest.devDependencies;
|
|
162
|
+
var optionalDependenciesBefore = manifest.optionalDependencies;
|
|
163
|
+
var result = updateDependencyRanges(manifest, '@pingux/target', '1.2.4');
|
|
164
|
+
expect(result.manifest).toEqual(_objectSpread(_objectSpread({}, manifest), {}, {
|
|
165
|
+
dependencies: {
|
|
166
|
+
'@pingux/target': '^1.2.4',
|
|
167
|
+
unrelated: '~4.0.0'
|
|
168
|
+
},
|
|
169
|
+
devDependencies: {
|
|
170
|
+
'@pingux/target': 'workspace:^1.2.4'
|
|
171
|
+
},
|
|
172
|
+
optionalDependencies: {
|
|
173
|
+
'@pingux/target': 'workspace:1.2.4'
|
|
174
|
+
}
|
|
175
|
+
}));
|
|
176
|
+
expect(result.changes).toEqual([{
|
|
177
|
+
field: 'dependencies',
|
|
178
|
+
name: '@pingux/target',
|
|
179
|
+
currentRange: '^1.2.3',
|
|
180
|
+
nextRange: '^1.2.4'
|
|
181
|
+
}, {
|
|
182
|
+
field: 'devDependencies',
|
|
183
|
+
name: '@pingux/target',
|
|
184
|
+
currentRange: 'workspace:^1.2.3',
|
|
185
|
+
nextRange: 'workspace:^1.2.4'
|
|
186
|
+
}, {
|
|
187
|
+
field: 'optionalDependencies',
|
|
188
|
+
name: '@pingux/target',
|
|
189
|
+
currentRange: 'workspace:*',
|
|
190
|
+
nextRange: 'workspace:1.2.4'
|
|
191
|
+
}]);
|
|
192
|
+
expect(manifest.dependencies).toBe(dependenciesBefore);
|
|
193
|
+
expect(manifest.devDependencies).toBe(devDependenciesBefore);
|
|
194
|
+
expect(manifest.optionalDependencies).toBe(optionalDependenciesBefore);
|
|
195
|
+
expect(manifest).toEqual({
|
|
196
|
+
name: '@pingux/source',
|
|
197
|
+
dependencies: {
|
|
198
|
+
'@pingux/target': '^1.2.3',
|
|
199
|
+
unrelated: '~4.0.0'
|
|
200
|
+
},
|
|
201
|
+
devDependencies: {
|
|
202
|
+
'@pingux/target': 'workspace:^1.2.3'
|
|
203
|
+
},
|
|
204
|
+
optionalDependencies: {
|
|
205
|
+
'@pingux/target': 'workspace:*'
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
test('leaves unrelated, absent, equal, and local-protocol entries unchanged', function () {
|
|
210
|
+
var manifest = {
|
|
211
|
+
name: '@pingux/source',
|
|
212
|
+
dependencies: {
|
|
213
|
+
'@pingux/target': 'file:../target',
|
|
214
|
+
unrelated: '^4.0.0'
|
|
215
|
+
},
|
|
216
|
+
devDependencies: {
|
|
217
|
+
'@pingux/target': 'link:../target'
|
|
218
|
+
},
|
|
219
|
+
optionalDependencies: {
|
|
220
|
+
'@pingux/target': '^1.2.4'
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
var result = updateDependencyRanges(manifest, '@pingux/target', '1.2.4');
|
|
224
|
+
expect(result.changes).toEqual([]);
|
|
225
|
+
expect(result.manifest).toEqual(manifest);
|
|
226
|
+
expect(result.manifest).not.toBe(manifest);
|
|
227
|
+
expect(result.manifest.dependencies).toBe(manifest.dependencies);
|
|
228
|
+
expect(result.manifest.devDependencies).toBe(manifest.devDependencies);
|
|
229
|
+
expect(result.manifest.optionalDependencies).toBe(manifest.optionalDependencies);
|
|
230
|
+
});
|
|
231
|
+
test.each([['dependencies', {
|
|
232
|
+
name: '@pingux/source',
|
|
233
|
+
devDependencies: {
|
|
234
|
+
'@pingux/target': '^1.2.3'
|
|
235
|
+
},
|
|
236
|
+
optionalDependencies: {
|
|
237
|
+
unrelated: '~4.0.0'
|
|
238
|
+
}
|
|
239
|
+
}, {
|
|
240
|
+
name: '@pingux/source',
|
|
241
|
+
devDependencies: {
|
|
242
|
+
'@pingux/target': '^1.2.4'
|
|
243
|
+
},
|
|
244
|
+
optionalDependencies: {
|
|
245
|
+
unrelated: '~4.0.0'
|
|
246
|
+
}
|
|
247
|
+
}, [{
|
|
248
|
+
field: 'devDependencies',
|
|
249
|
+
name: '@pingux/target',
|
|
250
|
+
currentRange: '^1.2.3',
|
|
251
|
+
nextRange: '^1.2.4'
|
|
252
|
+
}]], ['devDependencies', {
|
|
253
|
+
name: '@pingux/source',
|
|
254
|
+
dependencies: {
|
|
255
|
+
'@pingux/target': '~1.2.3'
|
|
256
|
+
},
|
|
257
|
+
optionalDependencies: {
|
|
258
|
+
unrelated: '~4.0.0'
|
|
259
|
+
}
|
|
260
|
+
}, {
|
|
261
|
+
name: '@pingux/source',
|
|
262
|
+
dependencies: {
|
|
263
|
+
'@pingux/target': '~1.2.4'
|
|
264
|
+
},
|
|
265
|
+
optionalDependencies: {
|
|
266
|
+
unrelated: '~4.0.0'
|
|
267
|
+
}
|
|
268
|
+
}, [{
|
|
269
|
+
field: 'dependencies',
|
|
270
|
+
name: '@pingux/target',
|
|
271
|
+
currentRange: '~1.2.3',
|
|
272
|
+
nextRange: '~1.2.4'
|
|
273
|
+
}]], ['optionalDependencies', {
|
|
274
|
+
name: '@pingux/source',
|
|
275
|
+
dependencies: {
|
|
276
|
+
'@pingux/target': 'workspace:*'
|
|
277
|
+
},
|
|
278
|
+
devDependencies: {
|
|
279
|
+
unrelated: '^4.0.0'
|
|
280
|
+
}
|
|
281
|
+
}, {
|
|
282
|
+
name: '@pingux/source',
|
|
283
|
+
dependencies: {
|
|
284
|
+
'@pingux/target': 'workspace:1.2.4'
|
|
285
|
+
},
|
|
286
|
+
devDependencies: {
|
|
287
|
+
unrelated: '^4.0.0'
|
|
288
|
+
}
|
|
289
|
+
}, [{
|
|
290
|
+
field: 'dependencies',
|
|
291
|
+
name: '@pingux/target',
|
|
292
|
+
currentRange: 'workspace:*',
|
|
293
|
+
nextRange: 'workspace:1.2.4'
|
|
294
|
+
}]]])('preserves omitted %s fields without spurious changes', function (omittedField, manifest, expectedManifest, expectedChanges) {
|
|
295
|
+
var result = updateDependencyRanges(manifest, '@pingux/target', '1.2.4');
|
|
296
|
+
expect(result.manifest).toEqual(expectedManifest);
|
|
297
|
+
expect(result.changes).toEqual(expectedChanges);
|
|
298
|
+
expect(result.manifest).not.toHaveProperty(omittedField);
|
|
299
|
+
});
|
|
300
|
+
});
|
|
301
|
+
describe('assertDistManifestVersions', function () {
|
|
302
|
+
// node:fs is mocked module-wide for the release script assertions, so the
|
|
303
|
+
// setup helpers use the real filesystem functions directly.
|
|
304
|
+
var realFs = jest.requireActual('node:fs');
|
|
305
|
+
var distPackageJson = function distPackageJson(projectName, version) {
|
|
306
|
+
var distDir = path.join(process.cwd(), 'dist', projectName);
|
|
307
|
+
var manifestPath = path.join(distDir, 'package.json');
|
|
308
|
+
realFs.mkdirSync(distDir, {
|
|
309
|
+
recursive: true
|
|
310
|
+
});
|
|
311
|
+
realFs.writeFileSync(manifestPath, _JSON$stringify({
|
|
312
|
+
name: "@pingux/".concat(projectName),
|
|
313
|
+
version: version
|
|
314
|
+
}), 'utf8');
|
|
315
|
+
return manifestPath;
|
|
316
|
+
};
|
|
317
|
+
var tempDirs = [];
|
|
318
|
+
var useTempCwd = function useTempCwd() {
|
|
319
|
+
var tempDir = realFs.mkdtempSync(path.join(os.tmpdir(), 'stable-release-dist-'));
|
|
320
|
+
tempDirs.push(tempDir);
|
|
321
|
+
jest.spyOn(process, 'cwd').mockReturnValue(tempDir);
|
|
322
|
+
return tempDir;
|
|
323
|
+
};
|
|
324
|
+
afterEach(function () {
|
|
325
|
+
_forEachInstanceProperty(tempDirs).call(tempDirs, function (tempDir) {
|
|
326
|
+
return realFs.rmSync(tempDir, {
|
|
327
|
+
recursive: true,
|
|
328
|
+
force: true
|
|
329
|
+
});
|
|
330
|
+
});
|
|
331
|
+
tempDirs = [];
|
|
332
|
+
jest.restoreAllMocks();
|
|
333
|
+
});
|
|
334
|
+
test('passes when every dist manifest matches the expected version', function () {
|
|
335
|
+
useTempCwd();
|
|
336
|
+
distPackageJson('astro', '2.221.2');
|
|
337
|
+
distPackageJson('onyx-tokens', '0.41.4');
|
|
338
|
+
expect(function () {
|
|
339
|
+
return assertDistManifestVersions({
|
|
340
|
+
astro: '2.221.2',
|
|
341
|
+
'onyx-tokens': '0.41.4'
|
|
342
|
+
});
|
|
343
|
+
}).not.toThrow();
|
|
344
|
+
});
|
|
345
|
+
test('throws when a dist manifest is missing, stale, or unversioned', function () {
|
|
346
|
+
useTempCwd();
|
|
347
|
+
distPackageJson('astro', '2.221.3-alpha.0');
|
|
348
|
+
distPackageJson('onyx-tokens', undefined);
|
|
349
|
+
expect(function () {
|
|
350
|
+
return assertDistManifestVersions({
|
|
351
|
+
astro: '2.221.2'
|
|
352
|
+
});
|
|
353
|
+
}).toThrow('dist manifest is 2.221.3-alpha.0 but the release version is 2.221.2');
|
|
354
|
+
expect(function () {
|
|
355
|
+
return assertDistManifestVersions({
|
|
356
|
+
'onyx-tokens': '0.41.4'
|
|
357
|
+
});
|
|
358
|
+
}).toThrow('dist manifest is missing a version but the release version is 0.41.4');
|
|
359
|
+
expect(function () {
|
|
360
|
+
return assertDistManifestVersions({
|
|
361
|
+
'onyx-wrapper': '0.41.3'
|
|
362
|
+
});
|
|
363
|
+
}).toThrow(/missing .*dist\/onyx-wrapper\/package\.json/);
|
|
364
|
+
});
|
|
365
|
+
});
|
|
366
|
+
describe('stableRelease module import', function () {
|
|
367
|
+
test('does not start release orchestration or write output when imported', function () {
|
|
368
|
+
var processExit = jest.spyOn(process, 'exit').mockImplementation(function () {
|
|
369
|
+
throw new Error('process.exit should not be called while importing stableRelease');
|
|
370
|
+
});
|
|
371
|
+
try {
|
|
372
|
+
jest.resetModules();
|
|
373
|
+
jest.isolateModules(function () {
|
|
374
|
+
// The module must be loaded inside isolateModules to verify import-time behavior.
|
|
375
|
+
// eslint-disable-next-line global-require
|
|
376
|
+
require('../../../../stableRelease');
|
|
377
|
+
});
|
|
378
|
+
expect(mockYargsParseAsync).not.toHaveBeenCalled();
|
|
379
|
+
expect(mockCreateProjectGraphAsync).not.toHaveBeenCalled();
|
|
380
|
+
expect(mockReleaseVersion).not.toHaveBeenCalled();
|
|
381
|
+
expect(mockReleaseChangelog).not.toHaveBeenCalled();
|
|
382
|
+
expect(mockReleasePublish).not.toHaveBeenCalled();
|
|
383
|
+
expect(mockWriteFileSync).not.toHaveBeenCalled();
|
|
384
|
+
expect(processExit).not.toHaveBeenCalled();
|
|
385
|
+
} finally {
|
|
386
|
+
processExit.mockRestore();
|
|
387
|
+
}
|
|
388
|
+
});
|
|
389
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pingux/astro",
|
|
3
|
-
"version": "2.221.
|
|
3
|
+
"version": "2.221.2",
|
|
4
4
|
"description": "React component library for Ping Identity's design system",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@internationalized/number": "^3.6.0",
|
|
47
47
|
"@monaco-editor/react": "4.4.2",
|
|
48
48
|
"@pingux/mdi-react": "^1.2.0",
|
|
49
|
-
"@pingux/onyx-tokens": "^0.41.
|
|
49
|
+
"@pingux/onyx-tokens": "^0.41.4",
|
|
50
50
|
"@react-aria/accordion": "~3.0.0-alpha.11",
|
|
51
51
|
"@react-aria/breadcrumbs": "^3.1.4",
|
|
52
52
|
"@react-aria/button": "^3.13.2",
|