Skip to content

Commit 1e230fb

Browse files
committedJan 2, 2023
Add updated test for setOutput
1 parent cfaedeb commit 1e230fb

File tree

5 files changed

+108
-87
lines changed

5 files changed

+108
-87
lines changed
 

‎dist/index.js

+16-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/index.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"build:ncc": "ncc build src/action/index.ts --source-map --external semver",
3737
"build:node_modules": "shx mkdir -p dist/node_modules && shx cp -r node_modules/semver dist/node_modules",
3838
"watch": "tsc --watch",
39-
"test": "mocha && npm run lint",
39+
"test": "NODE_ENV=test mocha && npm run lint",
4040
"coverage": "nyc -x test -x dist/sourcemap-register.js node_modules/mocha/bin/mocha",
4141
"upgrade": "npm-check -u && npm audit fix",
4242
"release": "npm run clean && npm run build && npm test && npm run bump"

‎src/action/index.ts

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { debug, getInput, setFailed, setOutput } from "@actions/core";
1+
import { debug, getInput, setFailed, setOutput as setOutputActionsCore } from "@actions/core";
22
import { npmPublish } from "../npm-publish";
33
import { Access, Options } from "../options";
44

@@ -64,6 +64,17 @@ async function main(): Promise<void> {
6464
}
6565
}
6666

67+
/**
68+
* Set output with logging to stdout for test support
69+
*/
70+
function setOutput(...args: Parameters<typeof setOutputActionsCore>) {
71+
if (process.env.NODE_ENV === "test") {
72+
console.log(`TEST-set-output name=${args[0]}::${args[1]}`);
73+
return;
74+
}
75+
return setOutputActionsCore(...args);
76+
}
77+
6778
/**
6879
* Prints errors to the GitHub Actions console
6980
*/

‎test/specs/action/success.spec.js

+78-78
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ describe("GitHub Action - success tests", () => {
4949
expect(cli).stdout.to.include(
5050
"Successfully published my-lib v2.0.0 to https://registry.npmjs.org/"
5151
);
52-
expect(cli).stdout.to.include("::set-output name=type::major");
53-
expect(cli).stdout.to.include("::set-output name=version::2.0.0");
54-
expect(cli).stdout.to.include("::set-output name=old-version::1.0.0");
55-
expect(cli).stdout.to.include("::set-output name=tag::latest");
56-
expect(cli).stdout.to.include("::set-output name=access::public");
57-
expect(cli).stdout.to.include("::set-output name=dry-run::false");
52+
expect(cli).stdout.to.include("TEST-set-output name=type::major");
53+
expect(cli).stdout.to.include("TEST-set-output name=version::2.0.0");
54+
expect(cli).stdout.to.include("TEST-set-output name=old-version::1.0.0");
55+
expect(cli).stdout.to.include("TEST-set-output name=tag::latest");
56+
expect(cli).stdout.to.include("TEST-set-output name=access::public");
57+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::false");
5858
expect(cli).to.have.exitCode(0);
5959

6060
files.assert.contents(
@@ -106,12 +106,12 @@ describe("GitHub Action - success tests", () => {
106106
expect(cli).stdout.to.include(
107107
"Successfully published my-lib v0.1.0 to https://registry.npmjs.org/"
108108
);
109-
expect(cli).stdout.to.include("::set-output name=type::major");
110-
expect(cli).stdout.to.include("::set-output name=version::0.1.0");
111-
expect(cli).stdout.to.include("::set-output name=old-version::1.0.0");
112-
expect(cli).stdout.to.include("::set-output name=tag::latest");
113-
expect(cli).stdout.to.include("::set-output name=access::public");
114-
expect(cli).stdout.to.include("::set-output name=dry-run::false");
109+
expect(cli).stdout.to.include("TEST-set-output name=type::major");
110+
expect(cli).stdout.to.include("TEST-set-output name=version::0.1.0");
111+
expect(cli).stdout.to.include("TEST-set-output name=old-version::1.0.0");
112+
expect(cli).stdout.to.include("TEST-set-output name=tag::latest");
113+
expect(cli).stdout.to.include("TEST-set-output name=access::public");
114+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::false");
115115
expect(cli).to.have.exitCode(0);
116116

117117
files.assert.contents(
@@ -163,12 +163,12 @@ describe("GitHub Action - success tests", () => {
163163
expect(cli).stdout.to.include(
164164
"my-lib v0.1.0 is lower than the version published to https://registry.npmjs.org/"
165165
);
166-
expect(cli).stdout.to.include("::set-output name=type::lower");
167-
expect(cli).stdout.to.include("::set-output name=version::0.1.0");
168-
expect(cli).stdout.to.include("::set-output name=old-version::1.0.0");
169-
expect(cli).stdout.to.include("::set-output name=tag::latest");
170-
expect(cli).stdout.to.include("::set-output name=access::public");
171-
expect(cli).stdout.to.include("::set-output name=dry-run::false");
166+
expect(cli).stdout.to.include("TEST-set-output name=type::lower");
167+
expect(cli).stdout.to.include("TEST-set-output name=version::0.1.0");
168+
expect(cli).stdout.to.include("TEST-set-output name=old-version::1.0.0");
169+
expect(cli).stdout.to.include("TEST-set-output name=tag::latest");
170+
expect(cli).stdout.to.include("TEST-set-output name=access::public");
171+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::false");
172172
expect(cli).to.have.exitCode(0);
173173

174174
files.assert.contents(
@@ -221,12 +221,12 @@ describe("GitHub Action - success tests", () => {
221221
expect(cli).stdout.to.include(
222222
"Successfully published my-lib v1.0.0 to https://registry.npmjs.org/"
223223
);
224-
expect(cli).stdout.to.include("::set-output name=type::major");
225-
expect(cli).stdout.to.include("::set-output name=version::1.0.0");
226-
expect(cli).stdout.to.include("::set-output name=old-version::0.0.0");
227-
expect(cli).stdout.to.include("::set-output name=tag::latest");
228-
expect(cli).stdout.to.include("::set-output name=access::public");
229-
expect(cli).stdout.to.include("::set-output name=dry-run::false");
224+
expect(cli).stdout.to.include("TEST-set-output name=type::major");
225+
expect(cli).stdout.to.include("TEST-set-output name=version::1.0.0");
226+
expect(cli).stdout.to.include("TEST-set-output name=old-version::0.0.0");
227+
expect(cli).stdout.to.include("TEST-set-output name=tag::latest");
228+
expect(cli).stdout.to.include("TEST-set-output name=access::public");
229+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::false");
230230
expect(cli).to.have.exitCode(0);
231231

232232
files.assert.contents(
@@ -278,12 +278,12 @@ describe("GitHub Action - success tests", () => {
278278
expect(cli).stdout.to.include(
279279
"Successfully published my-lib v1.0.0 to https://registry.npmjs.org/"
280280
);
281-
expect(cli).stdout.to.include("::set-output name=type::major");
282-
expect(cli).stdout.to.include("::set-output name=version::1.0.0");
283-
expect(cli).stdout.to.include("::set-output name=old-version::0.0.0");
284-
expect(cli).stdout.to.include("::set-output name=tag::my-tag");
285-
expect(cli).stdout.to.include("::set-output name=access::public");
286-
expect(cli).stdout.to.include("::set-output name=dry-run::false");
281+
expect(cli).stdout.to.include("TEST-set-output name=type::major");
282+
expect(cli).stdout.to.include("TEST-set-output name=version::1.0.0");
283+
expect(cli).stdout.to.include("TEST-set-output name=old-version::0.0.0");
284+
expect(cli).stdout.to.include("TEST-set-output name=tag::my-tag");
285+
expect(cli).stdout.to.include("TEST-set-output name=access::public");
286+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::false");
287287
expect(cli).to.have.exitCode(0);
288288

289289
files.assert.contents(
@@ -323,12 +323,12 @@ describe("GitHub Action - success tests", () => {
323323
expect(cli).stdout.to.include(
324324
"📦 my-lib v1.0.0 is already published to https://registry.npmjs.org/"
325325
);
326-
expect(cli).stdout.to.include("::set-output name=type::none");
327-
expect(cli).stdout.to.include("::set-output name=version::1.0.0");
328-
expect(cli).stdout.to.include("::set-output name=old-version::1.0.0");
329-
expect(cli).stdout.to.include("::set-output name=tag::latest");
330-
expect(cli).stdout.to.include("::set-output name=access::public");
331-
expect(cli).stdout.to.include("::set-output name=dry-run::false");
326+
expect(cli).stdout.to.include("TEST-set-output name=type::none");
327+
expect(cli).stdout.to.include("TEST-set-output name=version::1.0.0");
328+
expect(cli).stdout.to.include("TEST-set-output name=old-version::1.0.0");
329+
expect(cli).stdout.to.include("TEST-set-output name=tag::latest");
330+
expect(cli).stdout.to.include("TEST-set-output name=access::public");
331+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::false");
332332
expect(cli).to.have.exitCode(0);
333333

334334
files.assert.contents(
@@ -385,12 +385,12 @@ describe("GitHub Action - success tests", () => {
385385
expect(cli).stdout.to.include(
386386
"📦 Successfully published my-lib v1.1.0 to https://registry.npmjs.org/"
387387
);
388-
expect(cli).stdout.to.include("::set-output name=type::minor");
389-
expect(cli).stdout.to.include("::set-output name=version::1.1.0");
390-
expect(cli).stdout.to.include("::set-output name=old-version::1.0.0");
391-
expect(cli).stdout.to.include("::set-output name=tag::latest");
392-
expect(cli).stdout.to.include("::set-output name=access::public");
393-
expect(cli).stdout.to.include("::set-output name=dry-run::false");
388+
expect(cli).stdout.to.include("TEST-set-output name=type::minor");
389+
expect(cli).stdout.to.include("TEST-set-output name=version::1.1.0");
390+
expect(cli).stdout.to.include("TEST-set-output name=old-version::1.0.0");
391+
expect(cli).stdout.to.include("TEST-set-output name=tag::latest");
392+
expect(cli).stdout.to.include("TEST-set-output name=access::public");
393+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::false");
394394
expect(cli).to.have.exitCode(0);
395395

396396
files.assert.contents(
@@ -459,12 +459,12 @@ describe("GitHub Action - success tests", () => {
459459
expect(cli).stdout.to.include(
460460
"📦 Successfully published my-lib v1.0.1 to https://registry.npmjs.org/"
461461
);
462-
expect(cli).stdout.to.include("::set-output name=type::patch");
463-
expect(cli).stdout.to.include("::set-output name=version::1.0.1");
464-
expect(cli).stdout.to.include("::set-output name=old-version::1.0.0");
465-
expect(cli).stdout.to.include("::set-output name=tag::latest");
466-
expect(cli).stdout.to.include("::set-output name=access::public");
467-
expect(cli).stdout.to.include("::set-output name=dry-run::false");
462+
expect(cli).stdout.to.include("TEST-set-output name=type::patch");
463+
expect(cli).stdout.to.include("TEST-set-output name=version::1.0.1");
464+
expect(cli).stdout.to.include("TEST-set-output name=old-version::1.0.0");
465+
expect(cli).stdout.to.include("TEST-set-output name=tag::latest");
466+
expect(cli).stdout.to.include("TEST-set-output name=access::public");
467+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::false");
468468
expect(cli).to.have.exitCode(0);
469469

470470
files.assert.contents(
@@ -525,12 +525,12 @@ describe("GitHub Action - success tests", () => {
525525
expect(cli).stdout.to.include(
526526
"📦 Successfully published my-lib v1.0.0-beta to https://registry.npmjs.org/"
527527
);
528-
expect(cli).stdout.to.include("::set-output name=type::prerelease");
529-
expect(cli).stdout.to.include("::set-output name=version::1.0.0-beta");
530-
expect(cli).stdout.to.include("::set-output name=old-version::1.0.0");
531-
expect(cli).stdout.to.include("::set-output name=tag::latest");
532-
expect(cli).stdout.to.include("::set-output name=access::public");
533-
expect(cli).stdout.to.include("::set-output name=dry-run::false");
528+
expect(cli).stdout.to.include("TEST-set-output name=type::prerelease");
529+
expect(cli).stdout.to.include("TEST-set-output name=version::1.0.0-beta");
530+
expect(cli).stdout.to.include("TEST-set-output name=old-version::1.0.0");
531+
expect(cli).stdout.to.include("TEST-set-output name=tag::latest");
532+
expect(cli).stdout.to.include("TEST-set-output name=access::public");
533+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::false");
534534
expect(cli).to.have.exitCode(0);
535535

536536
files.assert.contents(
@@ -582,12 +582,12 @@ describe("GitHub Action - success tests", () => {
582582
expect(cli).stdout.to.include(
583583
"Successfully published @my-scope/my-lib v2.0.0 to https://registry.npmjs.org/"
584584
);
585-
expect(cli).stdout.to.include("::set-output name=type::major");
586-
expect(cli).stdout.to.include("::set-output name=version::2.0.0");
587-
expect(cli).stdout.to.include("::set-output name=old-version::1.0.0");
588-
expect(cli).stdout.to.include("::set-output name=tag::latest");
589-
expect(cli).stdout.to.include("::set-output name=access::restricted");
590-
expect(cli).stdout.to.include("::set-output name=dry-run::false");
585+
expect(cli).stdout.to.include("TEST-set-output name=type::major");
586+
expect(cli).stdout.to.include("TEST-set-output name=version::2.0.0");
587+
expect(cli).stdout.to.include("TEST-set-output name=old-version::1.0.0");
588+
expect(cli).stdout.to.include("TEST-set-output name=tag::latest");
589+
expect(cli).stdout.to.include("TEST-set-output name=access::restricted");
590+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::false");
591591
expect(cli).to.have.exitCode(0);
592592

593593
files.assert.contents(
@@ -640,12 +640,12 @@ describe("GitHub Action - success tests", () => {
640640
expect(cli).stdout.to.include(
641641
"Successfully published my-lib v2.0.0 to https://registry.npmjs.org/"
642642
);
643-
expect(cli).stdout.to.include("::set-output name=type::major");
644-
expect(cli).stdout.to.include("::set-output name=version::2.0.0");
645-
expect(cli).stdout.to.include("::set-output name=old-version::1.0.0");
646-
expect(cli).stdout.to.include("::set-output name=tag::next");
647-
expect(cli).stdout.to.include("::set-output name=access::public");
648-
expect(cli).stdout.to.include("::set-output name=dry-run::false");
643+
expect(cli).stdout.to.include("TEST-set-output name=type::major");
644+
expect(cli).stdout.to.include("TEST-set-output name=version::2.0.0");
645+
expect(cli).stdout.to.include("TEST-set-output name=old-version::1.0.0");
646+
expect(cli).stdout.to.include("TEST-set-output name=tag::next");
647+
expect(cli).stdout.to.include("TEST-set-output name=access::public");
648+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::false");
649649
expect(cli).to.have.exitCode(0);
650650

651651
files.assert.contents(
@@ -698,12 +698,12 @@ describe("GitHub Action - success tests", () => {
698698
expect(cli).stdout.to.include(
699699
"Successfully published @my-scope/my-lib v2.0.0 to https://registry.npmjs.org/"
700700
);
701-
expect(cli).stdout.to.include("::set-output name=type::major");
702-
expect(cli).stdout.to.include("::set-output name=version::2.0.0");
703-
expect(cli).stdout.to.include("::set-output name=old-version::1.0.0");
704-
expect(cli).stdout.to.include("::set-output name=tag::latest");
705-
expect(cli).stdout.to.include("::set-output name=access::public");
706-
expect(cli).stdout.to.include("::set-output name=dry-run::false");
701+
expect(cli).stdout.to.include("TEST-set-output name=type::major");
702+
expect(cli).stdout.to.include("TEST-set-output name=version::2.0.0");
703+
expect(cli).stdout.to.include("TEST-set-output name=old-version::1.0.0");
704+
expect(cli).stdout.to.include("TEST-set-output name=tag::latest");
705+
expect(cli).stdout.to.include("TEST-set-output name=access::public");
706+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::false");
707707
expect(cli).to.have.exitCode(0);
708708

709709
files.assert.contents(
@@ -752,12 +752,12 @@ describe("GitHub Action - success tests", () => {
752752
});
753753

754754
expect(cli).to.have.stderr("");
755-
expect(cli).stdout.to.include("::set-output name=type::minor");
756-
expect(cli).stdout.to.include("::set-output name=version::1.1.0");
757-
expect(cli).stdout.to.include("::set-output name=old-version::1.0.0");
758-
expect(cli).stdout.to.include("::set-output name=tag::latest");
759-
expect(cli).stdout.to.include("::set-output name=access::public");
760-
expect(cli).stdout.to.include("::set-output name=dry-run::true");
755+
expect(cli).stdout.to.include("TEST-set-output name=type::minor");
756+
expect(cli).stdout.to.include("TEST-set-output name=version::1.1.0");
757+
expect(cli).stdout.to.include("TEST-set-output name=old-version::1.0.0");
758+
expect(cli).stdout.to.include("TEST-set-output name=tag::latest");
759+
expect(cli).stdout.to.include("TEST-set-output name=access::public");
760+
expect(cli).stdout.to.include("TEST-set-output name=dry-run::true");
761761
expect(cli).stdout.to.include("my-lib 1.1.0");
762762
expect(cli).stdout.to.include(
763763
"📦 my-lib v1.1.0 was NOT actually published to https://registry.npmjs.org/ (dry run)"

0 commit comments

Comments
 (0)
Failed to load comments.