Skip to content

Commit 3764c7e

Browse files
Merge pull request #378 from contentstack/enhancement/DX-3285
update testcases and add GH pipeline for it
2 parents cc27c96 + 1614a2e commit 3764c7e

File tree

14 files changed

+119
-72
lines changed

14 files changed

+119
-72
lines changed

.eslintrc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
"id-match": "error",
3636
"no-eval": "error",
3737
"no-var": "error",
38-
"@typescript-eslint/no-explicit-any": "warn",
39-
"@typescript-eslint/no-require-imports": "warn",
38+
"@typescript-eslint/no-explicit-any": "off",
39+
"@typescript-eslint/no-require-imports": "off",
4040
"prefer-const": "error"
4141
}
4242
}

.github/workflows/unit-test.yml

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
1-
# name: Run Unit Tests
1+
name: Run Unit Tests
22

3-
# on:
4-
# pull_request:
5-
# types: [opened, synchronize, reopened]
3+
on:
4+
pull_request:
5+
types: [opened, synchronize, reopened]
66

7-
# jobs:
8-
# run-tests:
9-
# runs-on: ubuntu-latest
10-
# steps:
11-
# - name: Checkout code
12-
# uses: actions/checkout@v4
7+
jobs:
8+
run-tests:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout code
12+
uses: actions/checkout@v4
1313

14-
# - name: Set up Node.js
15-
# uses: actions/setup-node@v4
16-
# with:
17-
# node-version: "22.x"
14+
- name: Set up Node.js
15+
uses: actions/setup-node@v4
16+
with:
17+
node-version: "22.x"
1818

19-
# - name: Install dependencies
20-
# run: |
21-
# npm install
22-
# npm install -g @contentstack/cli
19+
- name: Install dependencies
20+
run: |
21+
npm install
22+
npm install -g @contentstack/cli
2323
24-
# - name: Configure Region
25-
# run: csdx config:set:region AWS-NA
24+
- name: Configure Region
25+
run: csdx config:set:region AWS-NA
2626

27-
# - name: Run tests
28-
# run: npm run test
27+
- name: Run tests
28+
run: npm run test

README.md

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,34 @@ $ csdx plugins:install @contentstack/apps-cli
1616
This plugin requires you to be authenticated using [csdx auth:login](https://www.contentstack.com/docs/developers/cli/authenticate-with-the-cli/).
1717

1818
<!-- usage -->
19+
1920
```sh-session
2021
$ npm install -g @contentstack/apps-cli
2122
$ csdx COMMAND
2223
running command...
2324
$ csdx (--version|-v)
24-
@contentstack/apps-cli/1.5.0 darwin-arm64 node-v22.13.1
25+
@contentstack/apps-cli/1.6.1 darwin-arm64 node-v22.13.1
2526
$ csdx --help [COMMAND]
2627
USAGE
2728
$ csdx COMMAND
2829
...
2930
```
31+
3032
<!-- usagestop -->
3133

3234
# Commands
3335

3436
<!-- commands -->
35-
* [`csdx app`](#csdx-app)
36-
* [`csdx app:create`](#csdx-appcreate)
37-
* [`csdx app:delete`](#csdx-appdelete)
38-
* [`csdx app:deploy`](#csdx-appdeploy)
39-
* [`csdx app:get`](#csdx-appget)
40-
* [`csdx app:install`](#csdx-appinstall)
41-
* [`csdx app:reinstall`](#csdx-appreinstall)
42-
* [`csdx app:uninstall`](#csdx-appuninstall)
43-
* [`csdx app:update`](#csdx-appupdate)
37+
38+
- [`csdx app`](#csdx-app)
39+
- [`csdx app:create`](#csdx-appcreate)
40+
- [`csdx app:delete`](#csdx-appdelete)
41+
- [`csdx app:deploy`](#csdx-appdeploy)
42+
- [`csdx app:get`](#csdx-appget)
43+
- [`csdx app:install`](#csdx-appinstall)
44+
- [`csdx app:reinstall`](#csdx-appreinstall)
45+
- [`csdx app:uninstall`](#csdx-appuninstall)
46+
- [`csdx app:update`](#csdx-appupdate)
4447

4548
## `csdx app`
4649

@@ -71,7 +74,7 @@ EXAMPLES
7174
$ csdx app:update
7275
```
7376

74-
_See code: [src/commands/app/index.ts](https://github.com/contentstack/apps-cli/blob/v1.5.0/src/commands/app/index.ts)_
77+
_See code: [src/commands/app/index.ts](https://github.com/contentstack/apps-cli/blob/v1.6.0/src/commands/app/index.ts)_
7578

7679
## `csdx app:create`
7780

@@ -111,7 +114,7 @@ EXAMPLES
111114
$ csdx app:create --name App-4 --app-type organization --org <UID> --boilerplate <Ecommerce App Boilerplate>
112115
```
113116

114-
_See code: [src/commands/app/create.ts](https://github.com/contentstack/apps-cli/blob/v1.5.0/src/commands/app/create.ts)_
117+
_See code: [src/commands/app/create.ts](https://github.com/contentstack/apps-cli/blob/v1.6.0/src/commands/app/create.ts)_
115118

116119
## `csdx app:delete`
117120

@@ -136,7 +139,7 @@ EXAMPLES
136139
$ csdx app:delete --app-uid <value> --org <value> -d ./boilerplate
137140
```
138141

139-
_See code: [src/commands/app/delete.ts](https://github.com/contentstack/apps-cli/blob/v1.5.0/src/commands/app/delete.ts)_
142+
_See code: [src/commands/app/delete.ts](https://github.com/contentstack/apps-cli/blob/v1.6.0/src/commands/app/delete.ts)_
140143

141144
## `csdx app:deploy`
142145

@@ -174,7 +177,7 @@ EXAMPLES
174177
$ csdx app:deploy --org <UID> --app-uid <APP-UID-1> --hosting-type <hosting-with-launch> --launch-project <new> --config <config-path>
175178
```
176179

177-
_See code: [src/commands/app/deploy.ts](https://github.com/contentstack/apps-cli/blob/v1.5.0/src/commands/app/deploy.ts)_
180+
_See code: [src/commands/app/deploy.ts](https://github.com/contentstack/apps-cli/blob/v1.6.0/src/commands/app/deploy.ts)_
178181

179182
## `csdx app:get`
180183

@@ -204,7 +207,7 @@ EXAMPLES
204207
$ csdx app:get --org <value> --app-uid <value> --app-type organization
205208
```
206209

207-
_See code: [src/commands/app/get.ts](https://github.com/contentstack/apps-cli/blob/v1.5.0/src/commands/app/get.ts)_
210+
_See code: [src/commands/app/get.ts](https://github.com/contentstack/apps-cli/blob/v1.6.0/src/commands/app/get.ts)_
208211

209212
## `csdx app:install`
210213

@@ -230,7 +233,7 @@ EXAMPLES
230233
$ csdx app:install --org <UID> --app-uid <APP-UID-1> --stack-api-key <STACK-API-KEY-1>
231234
```
232235

233-
_See code: [src/commands/app/install.ts](https://github.com/contentstack/apps-cli/blob/v1.5.0/src/commands/app/install.ts)_
236+
_See code: [src/commands/app/install.ts](https://github.com/contentstack/apps-cli/blob/v1.6.0/src/commands/app/install.ts)_
234237

235238
## `csdx app:reinstall`
236239

@@ -256,7 +259,7 @@ EXAMPLES
256259
$ csdx app:reinstall --org <UID> --app-uid <APP-UID-1> --stack-api-key <STACK-API-KEY-1>
257260
```
258261

259-
_See code: [src/commands/app/reinstall.ts](https://github.com/contentstack/apps-cli/blob/v1.5.0/src/commands/app/reinstall.ts)_
262+
_See code: [src/commands/app/reinstall.ts](https://github.com/contentstack/apps-cli/blob/v1.6.0/src/commands/app/reinstall.ts)_
260263

261264
## `csdx app:uninstall`
262265

@@ -283,7 +286,7 @@ EXAMPLES
283286
$ csdx app:uninstall --org <UID> --app-uid <APP-UID-1> --installation-uid <INSTALLATION-UID-1>
284287
```
285288

286-
_See code: [src/commands/app/uninstall.ts](https://github.com/contentstack/apps-cli/blob/v1.5.0/src/commands/app/uninstall.ts)_
289+
_See code: [src/commands/app/uninstall.ts](https://github.com/contentstack/apps-cli/blob/v1.6.0/src/commands/app/uninstall.ts)_
287290

288291
## `csdx app:update`
289292

@@ -306,5 +309,6 @@ EXAMPLES
306309
$ csdx app:update --app-manifest ./boilerplate/manifest.json
307310
```
308311

309-
_See code: [src/commands/app/update.ts](https://github.com/contentstack/apps-cli/blob/v1.5.0/src/commands/app/update.ts)_
312+
_See code: [src/commands/app/update.ts](https://github.com/contentstack/apps-cli/blob/v1.6.0/src/commands/app/update.ts)_
313+
310314
<!-- commandsstop -->

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@contentstack/apps-cli",
3-
"version": "1.6.0",
3+
"version": "1.6.1",
44
"description": "App ClI",
55
"author": "Contentstack CLI",
66
"homepage": "https://github.com/contentstack/contentstack-apps-cli",

test/unit/commands/app/create.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import manifestData from "../../../../src/config/manifest.json";
1515
import orgManifestData from "../../../unit/config/org_manifest.json";
1616
import { getDeveloperHubUrl } from "../../../../src/util/inquirer";
1717
import axios from "axios";
18+
import { stubAuthentication } from "../../helpers/auth-stub-helper";
1819

1920
const { origin, pathname } = new URL(config.appBoilerplateGithubUrl);
2021
const zipPath = join(process.cwd(), "test", "unit", "mock", "boilerplate.zip");
@@ -36,6 +37,9 @@ describe("app:create", () => {
3637
sandbox = sinon.createSandbox();
3738
axios.defaults.adapter = "http";
3839

40+
// Stub authentication using shared helper
41+
stubAuthentication(sandbox);
42+
3943
writeStreamMock = new MockWriteStream();
4044
sandbox.stub(fs, "renameSync").callsFake(() => {});
4145
sandbox.stub(fs, "createWriteStream").callsFake(() => writeStreamMock);

test/unit/commands/app/delete.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import * as mock from "../../mock/common.mock.json";
66
import messages, { $t } from "../../../../src/messages";
77
import { getDeveloperHubUrl } from "../../../../src/util/inquirer";
88
import nock from "nock";
9+
import { stubAuthentication } from "../../helpers/auth-stub-helper";
910

1011
const region: { cma: string; name: string; cda: string } =
1112
configHandler.get("region");
@@ -15,6 +16,10 @@ describe("app:delete", () => {
1516
let sandbox: sinon.SinonSandbox;
1617
beforeEach(() => {
1718
sandbox = sinon.createSandbox();
19+
20+
// Stub authentication using shared helper
21+
stubAuthentication(sandbox);
22+
1823
nock(region.cma)
1924
.get("/v3/organizations?limit=100&asc=name&include_count=true&skip=0")
2025
.reply(200, { organizations: mock.organizations });

test/unit/commands/app/deploy.test.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import messages, { $t } from "../../../../src/messages";
66
import * as mock from "../../mock/common.mock.json";
77
import { getDeveloperHubUrl } from "../../../../src/util/inquirer";
88
import sinon from "sinon";
9+
import { stubAuthentication } from "../../helpers/auth-stub-helper";
910

1011
const region = configHandler.get("region");
1112
const developerHubBaseUrl = getDeveloperHubUrl();
@@ -16,18 +17,8 @@ describe("app:deploy", () => {
1617
beforeEach(() => {
1718
sandbox = sinon.createSandbox();
1819

19-
// Stub authentication
20-
sandbox.stub(configHandler, "get").returns({
21-
cma: "https://api.contentstack.io",
22-
cda: "https://cdn.contentstack.io",
23-
region: "us",
24-
});
25-
sandbox
26-
.stub(
27-
require("../../../../src/base-command").BaseCommand.prototype,
28-
"validateRegionAndAuth"
29-
)
30-
.callsFake(() => {});
20+
// Stub authentication using shared helper
21+
stubAuthentication(sandbox);
3122

3223
sandbox.stub(cliux, "loader").callsFake(() => {});
3324
sandbox.stub(cliux, "inquire").callsFake((prompt: any) => {

test/unit/commands/app/get.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import * as mock from "../../mock/common.mock.json";
1111
import manifestData from "../../../../src/config/manifest.json";
1212
import { getDeveloperHubUrl } from "../../../../src/util/inquirer";
1313
import config from "../../../../src/config";
14+
import { stubAuthentication } from "../../helpers/auth-stub-helper";
1415

1516
const region = configHandler.get("region");
1617
const developerHubBaseUrl = getDeveloperHubUrl();
@@ -20,6 +21,10 @@ describe("app:get", () => {
2021

2122
beforeEach(() => {
2223
sandbox = sinon.createSandbox();
24+
25+
// Stub authentication using shared helper
26+
stubAuthentication(sandbox);
27+
2328
sandbox.stub(cliux, "loader").callsFake(() => {});
2429
sandbox.stub(fs, "writeFileSync").callsFake(() => {});
2530
});

test/unit/commands/app/install.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import messages from "../../../../src/messages";
77
import * as mock from "../../mock/common.mock.json";
88
import { getDeveloperHubUrl } from "../../../../src/util/inquirer";
99
import axios from "axios";
10+
import { stubAuthentication } from "../../helpers/auth-stub-helper";
1011

1112
const region = configHandler.get("region");
1213
const developerHubBaseUrl = getDeveloperHubUrl();
@@ -18,6 +19,9 @@ describe("app:install", () => {
1819
sandbox = sinon.createSandbox();
1920
axios.defaults.adapter = "http";
2021

22+
// Stub authentication using shared helper
23+
stubAuthentication(sandbox);
24+
2125
sandbox.stub(cliux, "loader").callsFake(() => {});
2226

2327
nock(region.cma)

0 commit comments

Comments
 (0)