-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: zFernand0 <[email protected]>
- Loading branch information
Showing
11 changed files
with
298 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
21 changes: 21 additions & 0 deletions
21
packages/cli/__tests__/__unit__/enable/transaction/Transaction.definition.unit.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
/** | ||
* This program and the accompanying materials are made available under the terms of the | ||
* Eclipse Public License v2.0 which accompanies this distribution, and is available at | ||
* https://www.eclipse.org/legal/epl-v20.html | ||
* | ||
* SPDX-License-Identifier: EPL-2.0 | ||
* | ||
* Copyright Contributors to the Zowe Project. | ||
* | ||
*/ | ||
|
||
import { ICommandDefinition } from "@zowe/imperative"; | ||
|
||
describe("cics enable urimap", () => { | ||
it("should not have changed", () => { | ||
const definition: ICommandDefinition = require("../../../../src/enable/transaction/Transaction.definition").TransactionDefinition; | ||
expect(definition).toBeDefined(); | ||
delete definition.handler; | ||
expect(definition).toMatchSnapshot(); | ||
}); | ||
}); |
102 changes: 102 additions & 0 deletions
102
packages/cli/__tests__/__unit__/enable/transaction/Transaction.handler.unit.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
/** | ||
* This program and the accompanying materials are made available under the terms of the | ||
* Eclipse Public License v2.0 which accompanies this distribution, and is available at | ||
* https://www.eclipse.org/legal/epl-v20.html | ||
* | ||
* SPDX-License-Identifier: EPL-2.0 | ||
* | ||
* Copyright Contributors to the Zowe Project. | ||
* | ||
*/ | ||
|
||
import { mockHandlerParameters } from "@zowe/cli-test-utils"; | ||
import { CommandProfiles, IHandlerParameters, IProfile, Session } from "@zowe/imperative"; | ||
import { ICMCIApiResponse } from "../../../../src"; | ||
import { TransactionDefinition } from "../../../../src/enable/transaction/Transaction.definition"; | ||
import TransactionHandler from "../../../../src/enable/transaction/Transaction.handler"; | ||
|
||
jest.mock("@zowe/cics-for-zowe-sdk"); | ||
const Enable = require("@zowe/cics-for-zowe-sdk"); | ||
|
||
const host = "somewhere.com"; | ||
const port = "43443"; | ||
const user = "someone"; | ||
const password = "somesecret"; | ||
const protocol = "http"; | ||
const rejectUnauthorized = false; | ||
|
||
const PROFILE_MAP = new Map<string, IProfile[]>(); | ||
PROFILE_MAP.set("cics", [ | ||
{ | ||
name: "cics", | ||
type: "cics", | ||
host, | ||
port, | ||
user, | ||
password, | ||
protocol, | ||
rejectUnauthorized, | ||
}, | ||
]); | ||
const PROFILES: CommandProfiles = new CommandProfiles(PROFILE_MAP); | ||
const DEFAULT_PARAMETERS: IHandlerParameters = mockHandlerParameters({ | ||
positionals: ["cics", "enable", "transaction"], | ||
definition: TransactionDefinition, | ||
profiles: PROFILES, | ||
}); | ||
|
||
describe("enableTransactionHandler", () => { | ||
const transactionName = "testTransaction"; | ||
const regionName = "testRegion"; | ||
|
||
const defaultReturn: ICMCIApiResponse = { | ||
response: { | ||
resultsummary: { api_response1: "1024", api_response2: "0", recordcount: "0", displayed_recordcount: "0" }, | ||
records: "testing", | ||
}, | ||
}; | ||
|
||
const functionSpy = jest.spyOn(Enable, "enableTransaction"); | ||
|
||
beforeEach(() => { | ||
functionSpy.mockClear(); | ||
functionSpy.mockImplementation(async () => defaultReturn); | ||
}); | ||
|
||
it("should call the enableTransaction api", async () => { | ||
const handler = new TransactionHandler(); | ||
|
||
const commandParameters = { ...DEFAULT_PARAMETERS }; | ||
commandParameters.arguments = { | ||
...commandParameters.arguments, | ||
name: transactionName, | ||
regionName, | ||
host, | ||
port, | ||
user, | ||
password, | ||
protocol, | ||
rejectUnauthorized, | ||
}; | ||
|
||
await handler.process(commandParameters); | ||
|
||
expect(functionSpy).toHaveBeenCalledTimes(1); | ||
const testProfile = PROFILE_MAP.get("cics")[0]; | ||
expect(functionSpy).toHaveBeenCalledWith( | ||
new Session({ | ||
type: "basic", | ||
hostname: testProfile.host, | ||
port: testProfile.port, | ||
user: testProfile.user, | ||
password: testProfile.password, | ||
rejectUnauthorized, | ||
protocol, | ||
}), | ||
{ | ||
name: transactionName, | ||
regionName, | ||
} | ||
); | ||
}); | ||
}); |
43 changes: 43 additions & 0 deletions
43
...ests__/__unit__/enable/transaction/__snapshots__/Transaction.definition.unit.test.ts.snap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
// Jest Snapshot v1, https://goo.gl/fbAQLP | ||
|
||
exports[`cics enable urimap should not have changed 1`] = ` | ||
{ | ||
"aliases": [ | ||
"tran", | ||
], | ||
"description": "Enable a transaction from CICS.", | ||
"examples": [ | ||
{ | ||
"description": "Enable a transaction named TRN1 from the region named MYREGION", | ||
"options": "TRN1 --region-name MYREGION", | ||
}, | ||
], | ||
"name": "transaction", | ||
"options": [ | ||
{ | ||
"description": "The CICS region name in which to enable the transaction", | ||
"name": "region-name", | ||
"type": "string", | ||
}, | ||
{ | ||
"description": "The name of the CICSPlex to which to enable the transaction", | ||
"name": "cics-plex", | ||
"type": "string", | ||
}, | ||
], | ||
"positionals": [ | ||
{ | ||
"description": "The name of the transaction to enable. The maximum length is four characters.", | ||
"name": "name", | ||
"required": true, | ||
"type": "string", | ||
}, | ||
], | ||
"profile": { | ||
"optional": [ | ||
"cics", | ||
], | ||
}, | ||
"type": "command", | ||
} | ||
`; |
17 changes: 17 additions & 0 deletions
17
...__tests__/__unit__/enable/transaction/__snapshots__/Transaction.handler.unit.test.ts.snap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
// Jest Snapshot v1, https://goo.gl/fbAQLP | ||
|
||
exports[`enableTransactionHandler should call the enableTransaction api 1`] = `"The transaction '%s' was enabled successfully."`; | ||
|
||
exports[`enableTransactionHandler should call the enableTransaction api 2`] = ` | ||
{ | ||
"response": { | ||
"records": "testing", | ||
"resultsummary": { | ||
"api_response1": "1024", | ||
"api_response2": "0", | ||
"displayed_recordcount": "0", | ||
"recordcount": "0", | ||
}, | ||
}, | ||
} | ||
`; |
106 changes: 106 additions & 0 deletions
106
packages/sdk/__tests__/__unit__/enable/Enable.transaction.unit.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
/** | ||
* This program and the accompanying materials are made available under the terms of the | ||
* Eclipse Public License v2.0 which accompanies this distribution, and is available at | ||
* https://www.eclipse.org/legal/epl-v20.html | ||
* | ||
* SPDX-License-Identifier: EPL-2.0 | ||
* | ||
* Copyright Contributors to the Zowe Project. | ||
* | ||
*/ | ||
|
||
import { Session } from "@zowe/imperative"; | ||
import { CicsCmciConstants, CicsCmciRestClient, enableTransaction, ICMCIApiResponse, IBaseParms } from "../../../src"; | ||
|
||
describe("CMCI - enable transaction", () => { | ||
const transaction = "transaction"; | ||
const region = "region"; | ||
const content = "ThisIsATest" as unknown as ICMCIApiResponse; | ||
|
||
const enableParms: IBaseParms = { | ||
regionName: region, | ||
name: transaction, | ||
}; | ||
|
||
const dummySession = new Session({ | ||
user: "fake", | ||
password: "fake", | ||
hostname: "fake", | ||
port: 1490, | ||
}); | ||
|
||
let error: any; | ||
let response: any; | ||
let endPoint: any; | ||
let requestBody: any; | ||
|
||
describe("validation", () => { | ||
beforeEach(() => { | ||
response = undefined; | ||
error = undefined; | ||
enableParms.regionName = region; | ||
enableParms.name = transaction; | ||
}); | ||
|
||
it("should throw an error if no region name is specified", async () => { | ||
enableParms.regionName = undefined; | ||
try { | ||
response = await enableTransaction(dummySession, enableParms); | ||
} catch (err) { | ||
error = err; | ||
} | ||
expect(response).toBeUndefined(); | ||
expect(error).toBeDefined(); | ||
expect(error.message).toContain("CICS region name is required"); | ||
}); | ||
|
||
it("should throw an error if no transaction name is specified", async () => { | ||
enableParms.name = undefined; | ||
try { | ||
response = await enableTransaction(dummySession, enableParms); | ||
} catch (err) { | ||
error = err; | ||
} | ||
expect(response).toBeUndefined(); | ||
expect(error).toBeDefined(); | ||
expect(error.message).toContain("CICS Transaction name is required"); | ||
}); | ||
}); | ||
|
||
describe("success scenarios", () => { | ||
const enableSpy = jest.spyOn(CicsCmciRestClient, "putExpectParsedXml").mockResolvedValue(content); | ||
|
||
beforeEach(() => { | ||
response = undefined; | ||
error = undefined; | ||
enableSpy.mockClear(); | ||
enableSpy.mockResolvedValue(content); | ||
enableParms.regionName = region; | ||
enableParms.name = transaction; | ||
}); | ||
|
||
it("should be able to enable a transaction", async () => { | ||
endPoint = | ||
"/" + | ||
CicsCmciConstants.CICS_SYSTEM_MANAGEMENT + | ||
"/" + | ||
CicsCmciConstants.CICS_LOCAL_TRANSACTION + | ||
"/" + | ||
region + | ||
`?CRITERIA=(TRANID=${enableParms.name})`; | ||
requestBody = { | ||
request: { | ||
action: { | ||
$: { | ||
name: "ENABLE", | ||
}, | ||
}, | ||
}, | ||
}; | ||
|
||
response = await enableTransaction(dummySession, enableParms); | ||
expect(response).toContain(content); | ||
expect(enableSpy).toHaveBeenCalledWith(dummySession, endPoint, [], requestBody); | ||
}); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters