Skip to content

Commit 4762f73

Browse files
authored
fix(test): nut for partial success on scratch org deploy fails (#1100)
* test: nut for partial success on scratch org deploy fails * chore: bump core * test: exit code is number not string
1 parent 8f4ef67 commit 4762f73

File tree

4 files changed

+92
-68
lines changed

4 files changed

+92
-68
lines changed

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
"author": "Salesforce",
66
"bugs": "https://github.com/forcedotcom/cli/issues",
77
"dependencies": {
8-
"@oclif/core": "^4.0.3",
9-
"@salesforce/core": "^7.3.10",
10-
"@salesforce/kit": "^3.1.1",
11-
"@salesforce/sf-plugins-core": "^10.0.1",
12-
"@salesforce/source-deploy-retrieve": "^11.6.5",
8+
"@oclif/core": "^4.0.6",
9+
"@salesforce/core": "^7.4.1",
10+
"@salesforce/kit": "^3.1.5",
11+
"@salesforce/sf-plugins-core": "^11.0.1",
12+
"@salesforce/source-deploy-retrieve": "^11.6.7",
1313
"ansis": "^3.2.0",
1414
"change-case": "^5.4.4",
1515
"is-wsl": "^3.1.0",

test/nut/scratchCreate.nut.ts

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,4 +237,50 @@ describe('env create scratch NUTs', () => {
237237
expect(aliases.orgs).to.have.property(testAlias, resp.username);
238238
});
239239
});
240+
241+
describe('partial success', () => {
242+
before(async () => {
243+
// create settings that will fail to deploy
244+
const scratchDefJson = parseJsonMap(
245+
await fs.promises.readFile(path.join(session.project.dir, 'config', 'project-scratch-def.json'), 'utf8')
246+
);
247+
scratchDefJson.objectSettings = {
248+
NotAnObject: {
249+
defaultRecordType: 'bogusType',
250+
},
251+
};
252+
await fs.promises.writeFile(
253+
path.join(session.project.dir, 'config', 'project-scratch-def-1.json'),
254+
JSON.stringify(scratchDefJson),
255+
'utf-8'
256+
);
257+
});
258+
it('creates org, auths, and sets alias even if settings deploy fails', async () => {
259+
const alias = 'badSettingsAlias';
260+
const result = execCmd<ScratchCreateResponse>(
261+
`org create scratch -d -f config/project-scratch-def-1.json -a ${alias} --duration-days 1 --json`,
262+
{
263+
ensureExitCode: 68,
264+
}
265+
).jsonOutput;
266+
267+
// message comes from sfdx-core. if it changes, this test will need to be updated
268+
expect(result?.message).to.include('A scratch org was created with username');
269+
// eslint-disable-next-line no-console
270+
console.log(result?.message);
271+
assert(result?.data);
272+
assert(typeof result.data === 'object');
273+
assert('username' in result.data);
274+
assert(typeof result.data.username === 'string');
275+
const authFile = await readAuthFile(result.data.username);
276+
expect(authFile).to.include.keys(['orgId', 'devHubUsername', 'accessToken']);
277+
278+
const aliases = await readAliases();
279+
expect(aliases.orgs).to.have.property(alias, result.data.username);
280+
281+
expect(
282+
JSON.parse(await fs.promises.readFile(path.join(session.project.dir, '.sf', 'config.json'), 'utf8'))
283+
).to.have.property('target-org', alias);
284+
});
285+
});
240286
});

test/unit/force/org/sandboxCreate.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ describe('[DEPRECATED] force:org:create (sandbox paths)', () => {
178178
} catch (err) {
179179
// shouldThrow doesn't necessarily throw an SfError
180180
assert(err instanceof SfError, 'Expect error to be an instance of SfError');
181-
expect(err.code).to.equal(68);
181+
expect(err.exitCode).to.equal(68);
182182
try {
183183
// mocha really is the bin during UT
184184
expect(err.actions).to.deep.equal([

yarn.lock

Lines changed: 40 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1678,22 +1678,22 @@
16781678
wordwrap "^1.0.0"
16791679
wrap-ansi "^7.0.0"
16801680

1681-
"@oclif/core@^4", "@oclif/core@^4.0.3":
1682-
version "4.0.3"
1683-
resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.0.3.tgz#6231272447c7057813986860448613ed38cfdc47"
1684-
integrity sha512-yM8R/M2WfSNfL9eF8clS/SbQvanvHZJgoij5bLs3ro7uAFCkL/LYcagyj0UVGbysx5AI+SNIof6OHQUXYZpOZw==
1681+
"@oclif/core@^4", "@oclif/core@^4.0.3", "@oclif/core@^4.0.6":
1682+
version "4.0.6"
1683+
resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.0.6.tgz#05958a928591567b7fe90638e0ee8df9e07eb3ff"
1684+
integrity sha512-z/4YUVQsf2pHsXRze5etbmvAYDhoUhIzpM6oJGEdsdWfvQJ6YQBogH7TdX/ItuGda6+vpfXg/4U1CtPexSF+bA==
16851685
dependencies:
16861686
ansi-escapes "^4.3.2"
16871687
ansis "^3.1.1"
16881688
clean-stack "^3.0.1"
16891689
cli-spinners "^2.9.2"
1690-
cosmiconfig "^9.0.0"
16911690
debug "^4.3.5"
16921691
ejs "^3.1.10"
16931692
get-package-type "^0.1.0"
16941693
globby "^11.1.0"
16951694
indent-string "^4.0.0"
16961695
is-wsl "^2.2.0"
1696+
lilconfig "^3.1.2"
16971697
minimatch "^9.0.4"
16981698
string-width "^4.2.3"
16991699
supports-color "^8"
@@ -1765,7 +1765,7 @@
17651765
strip-ansi "6.0.1"
17661766
ts-retry-promise "^0.8.1"
17671767

1768-
"@salesforce/core@^7.3.10", "@salesforce/core@^7.3.12", "@salesforce/core@^7.3.9", "@salesforce/core@^7.4.1":
1768+
"@salesforce/core@^7.3.12", "@salesforce/core@^7.4.1":
17691769
version "7.4.1"
17701770
resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-7.4.1.tgz#7c37623f6a89c199bf12cd6dc28d89bc950914ef"
17711771
integrity sha512-ccYs7uL4GYjdOcc44trfRnaz69kG0jU0aoT0qjPkIel8oVOyEoXaoDCG0A+2diqmicDp5uWK0pNs+tdWNj2mcQ==
@@ -1826,7 +1826,7 @@
18261826
typescript "^5.4.3"
18271827
wireit "^0.14.4"
18281828

1829-
"@salesforce/kit@^3.1.1", "@salesforce/kit@^3.1.2", "@salesforce/kit@^3.1.3":
1829+
"@salesforce/kit@^3.1.1", "@salesforce/kit@^3.1.2", "@salesforce/kit@^3.1.3", "@salesforce/kit@^3.1.5":
18301830
version "3.1.5"
18311831
resolved "https://registry.yarnpkg.com/@salesforce/kit/-/kit-3.1.5.tgz#ffddbf81414a4b08be00d724eef1d252ae4ba047"
18321832
integrity sha512-N7v5r7Q8VfDl6WLzl5aVrrkE7SKgZLgJPTq/65SPaLYG7f1gkUpAJp1CRQd8b/LUQc7f0su2KrCJ3BhRQC7iGA==
@@ -1858,7 +1858,7 @@
18581858
resolved "https://registry.yarnpkg.com/@salesforce/schemas/-/schemas-1.9.0.tgz#ba477a112653a20b4edcf989c61c57bdff9aa3ca"
18591859
integrity sha512-LiN37zG5ODT6z70sL1fxF7BQwtCX9JOWofSU8iliSNIM+WDEeinnoFtVqPInRSNt8I0RiJxIKCrqstsmQRBNvA==
18601860

1861-
"@salesforce/sf-plugins-core@^10.0.0", "@salesforce/sf-plugins-core@^10.0.1":
1861+
"@salesforce/sf-plugins-core@^10.0.0":
18621862
version "10.0.1"
18631863
resolved "https://registry.yarnpkg.com/@salesforce/sf-plugins-core/-/sf-plugins-core-10.0.1.tgz#8df8e3b7a10f8ba75906c5d58eb3a7df32e42eb3"
18641864
integrity sha512-FsbZKshTgyHYO1KNuEuNGhzLj5diuh7lMElNkT4xfmwGjciDEIBtZf/aMAdN9AYpIj/TkAvi7Xnxs1gMHPOGNQ==
@@ -1876,12 +1876,30 @@
18761876
string-width "^7.1.0"
18771877
terminal-link "^3.0.0"
18781878

1879-
"@salesforce/source-deploy-retrieve@^11.6.5":
1880-
version "11.6.5"
1881-
resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-11.6.5.tgz#5a35edc42b9f0fc32384ce2515cecea6ccf3c459"
1882-
integrity sha512-JwYhLOLAkyIBsZXMt9OnDUqI8BJRu6sr5cs6EXfOD4rpIrEqpNN3+m9Gnkoe3onmTBUg4AuxFTuBT8SaBorw2g==
1879+
"@salesforce/sf-plugins-core@^11.0.1":
1880+
version "11.0.1"
1881+
resolved "https://registry.yarnpkg.com/@salesforce/sf-plugins-core/-/sf-plugins-core-11.0.1.tgz#5dca567e4e18322d6341fa77e58c7debe409a7d2"
1882+
integrity sha512-A6Dzkl6XNxn6sYoZjhgnjQhwYcGek55VfWj+7zIzSjvP48YGPXy8VRiJEd4asCtYBxHBtVbrzfL23358MZ3h7Q==
1883+
dependencies:
1884+
"@inquirer/confirm" "^3.1.9"
1885+
"@inquirer/password" "^2.1.9"
1886+
"@oclif/core" "^4.0.3"
1887+
"@salesforce/core" "^7.3.12"
1888+
"@salesforce/kit" "^3.1.3"
1889+
"@salesforce/ts-types" "^2.0.9"
1890+
ansis "^3.2.0"
1891+
cli-progress "^3.12.0"
1892+
natural-orderby "^3.0.2"
1893+
slice-ansi "^7.1.0"
1894+
string-width "^7.1.0"
1895+
terminal-link "^3.0.0"
1896+
1897+
"@salesforce/source-deploy-retrieve@^11.6.7":
1898+
version "11.6.7"
1899+
resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-11.6.7.tgz#538042e31fdf92d6eeca9a45266d335e96d8af73"
1900+
integrity sha512-66KY6EfNGRom7rGDutNzLE7wr8UIPylAruLwyvShuWbXGwXKlUIQli2Vc33h6UfU15NmcrbfiaRxyCgg9oqENw==
18831901
dependencies:
1884-
"@salesforce/core" "^7.3.9"
1902+
"@salesforce/core" "^7.3.12"
18851903
"@salesforce/kit" "^3.1.1"
18861904
"@salesforce/ts-types" "^2.0.9"
18871905
fast-levenshtein "^3.0.0"
@@ -3929,16 +3947,6 @@ cosmiconfig@^8.0.0, cosmiconfig@^8.3.6:
39293947
parse-json "^5.2.0"
39303948
path-type "^4.0.0"
39313949

3932-
cosmiconfig@^9.0.0:
3933-
version "9.0.0"
3934-
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d"
3935-
integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==
3936-
dependencies:
3937-
env-paths "^2.2.1"
3938-
import-fresh "^3.3.0"
3939-
js-yaml "^4.1.0"
3940-
parse-json "^5.2.0"
3941-
39423950
create-require@^1.1.0:
39433951
version "1.1.1"
39443952
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
@@ -4252,11 +4260,6 @@ entities@^4.2.0, entities@^4.5.0:
42524260
resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
42534261
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
42544262

4255-
env-paths@^2.2.1:
4256-
version "2.2.1"
4257-
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
4258-
integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
4259-
42604263
error-ex@^1.3.1:
42614264
version "1.3.2"
42624265
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@@ -5992,6 +5995,11 @@ lie@~3.3.0:
59925995
dependencies:
59935996
immediate "~3.0.5"
59945997

5998+
lilconfig@^3.1.2:
5999+
version "3.1.2"
6000+
resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb"
6001+
integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==
6002+
59956003
lines-and-columns@^1.1.6:
59966004
version "1.2.4"
59976005
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
@@ -7755,16 +7763,7 @@ srcset@^5.0.0:
77557763
resolved "https://registry.yarnpkg.com/srcset/-/srcset-5.0.1.tgz#e660a728f195419e4afa95121099bc9efb7a1e36"
77567764
integrity sha512-/P1UYbGfJVlxZag7aABNRrulEXAwCSDo7fklafOQrantuPTDmYgijJMks2zusPCVzgW9+4P69mq7w6pYuZpgxw==
77577765

7758-
"string-width-cjs@npm:string-width@^4.2.0":
7759-
version "4.2.3"
7760-
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
7761-
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
7762-
dependencies:
7763-
emoji-regex "^8.0.0"
7764-
is-fullwidth-code-point "^3.0.0"
7765-
strip-ansi "^6.0.1"
7766-
7767-
string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
7766+
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
77687767
version "4.2.3"
77697768
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
77707769
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -7832,14 +7831,7 @@ string_decoder@~1.1.1:
78327831
dependencies:
78337832
safe-buffer "~5.1.0"
78347833

7835-
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
7836-
version "6.0.1"
7837-
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
7838-
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
7839-
dependencies:
7840-
ansi-regex "^5.0.1"
7841-
7842-
[email protected], strip-ansi@^6.0.0, strip-ansi@^6.0.1:
7834+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", [email protected], strip-ansi@^6.0.0, strip-ansi@^6.0.1:
78437835
version "6.0.1"
78447836
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
78457837
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -8059,12 +8051,7 @@ tslib@^1.11.1:
80598051
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
80608052
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
80618053

8062-
tslib@^2.0.1, tslib@^2.0.3, tslib@^2.3.1, tslib@^2.5.0, tslib@^2.6.1, tslib@^2.6.2:
8063-
version "2.6.2"
8064-
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
8065-
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
8066-
8067-
tslib@^2.6.3:
8054+
tslib@^2.0.1, tslib@^2.0.3, tslib@^2.3.1, tslib@^2.5.0, tslib@^2.6.1, tslib@^2.6.2, tslib@^2.6.3:
80688055
version "2.6.3"
80698056
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0"
80708057
integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==
@@ -8400,7 +8387,7 @@ [email protected]:
84008387
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343"
84018388
integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==
84028389

8403-
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
8390+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
84048391
version "7.0.0"
84058392
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
84068393
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -8418,15 +8405,6 @@ wrap-ansi@^6.2.0:
84188405
string-width "^4.1.0"
84198406
strip-ansi "^6.0.0"
84208407

8421-
wrap-ansi@^7.0.0:
8422-
version "7.0.0"
8423-
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
8424-
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
8425-
dependencies:
8426-
ansi-styles "^4.0.0"
8427-
string-width "^4.1.0"
8428-
strip-ansi "^6.0.0"
8429-
84308408
wrap-ansi@^8.1.0:
84318409
version "8.1.0"
84328410
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"

0 commit comments

Comments
 (0)