UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

472 lines (460 loc) 9.29 kB
/** * Copyright IBM Corp. 2024, 2025 */ const baseAssertion = { kind: 'assertion', metadata: { name: 'TestPaymentAssertion', namespace: 'default', version: '1.0.0', }, spec: [ { name: 'Validate the response code', key: 'code', value: 200, action: 'equals', }, ], }; export const validTest = { kind: 'test', metadata: { name: 'TestPayments', version: '1.0.0', tags: ['functional'], namespace: 'default', }, spec: { api: { $ref: 'PaymentAPI:1.0.1', }, environment: { $ref: 'default:TestPaymentsEnvironment:1.0.0', }, request: [ { method: 'POST', resource: 'v2/pet', headers: [ { key: 'Content-Type', value: '${content-type}', }, ], auth: { noauth: true, }, payload: { raw: { json: '{\n "name":"Jose"\n}\n', }, }, settings: { sslVerification: false, encodeURL: true, }, assertions: [{ $ref: 'default:TestPaymentAssertion:1.0.0' }], }, { method: '${method}', resource: 'v2/pet', headers: [ { key: 'Content-Type', value: '${content-type}', }, ], auth: { noauth: true, }, payload: { raw: { json: '{\n "name":"Adam"\n}\n', }, }, settings: { sslVerification: false, encodeURL: true, }, assertions: { assertions: [baseAssertion], }, }, ], }, }; export const validTestWithIf = { ...validTest, spec: { ...validTest.spec, request: [ { method: 'POST', resource: 'v2/pet', if: '${result.statusCode} == 200', stopOnFail: true, headers: [ { key: 'Content-Type', value: '${content-type}', }, ], auth: { noauth: true, }, payload: { raw: { json: '{\n "name":"Jose"\n}\n', }, }, settings: { sslVerification: false, encodeURL: true, }, assertions: [{ $ref: 'default:TestPaymentAssertion:1.0.0' }], }, ], }, }; export const validTestWithEndpoint = { kind: 'test', metadata: { name: 'TestPayments', version: '1.0.0', tags: ['functional'], namespace: 'default', }, spec: { api: { $endpoint: 'www.test.com', }, environment: { $ref: 'default:TestPaymentsEnvironment:1.0.0', }, request: [ { method: 'POST', resource: 'v2/pet', headers: [ { key: 'Content-Type', value: '${content-type}', }, ], auth: { noauth: true, }, payload: { raw: { json: '{\n "name":"Jose"\n}\n', }, }, settings: { sslVerification: false, encodeURL: true, }, assertions: [{ $ref: 'default:TestPaymentAssertion:1.0.0' }], }, { method: '${method}', resource: 'v2/pet', headers: [ { key: 'Content-Type', value: '${content-type}', }, ], auth: { noauth: true, }, payload: { raw: { json: '{\n "name":"Adam"\n}\n', }, }, settings: { sslVerification: false, encodeURL: true, }, assertions: { assertions: [baseAssertion], }, }, ], }, }; export const validTestWithMultiAPIAndEnvironment = { kind: 'test', metadata: { name: 'TestPayments', version: '1.0.0', tags: ['functional'], namespace: 'default', }, spec: { api: { $ref: ['PaymentAPI:1.0.1', 'PaymentAPI:1.0.2'], }, environment: [ { $ref: 'default:TestPaymentsEnvironment:1.0.0' }, { $ref: 'default:TestPaymentsEnvironment:2.0.0' }, ], request: [ { method: 'POST', resource: 'v2/pet', headers: [ { key: 'Content-Type', value: '${content-type}', }, ], auth: { noauth: true, }, payload: { raw: { json: '{\n "name":"Jose"\n}\n', }, }, settings: { sslVerification: false, encodeURL: true, }, assertions: [{ $ref: 'default:TestPaymentAssertion:1.0.0' }], }, { method: '${method}', resource: 'v2/pet', headers: [ { key: 'Content-Type', value: '${content-type}', }, ], auth: { noauth: true, }, payload: { raw: { json: '{\n "name":"Adam"\n}\n', }, }, settings: { sslVerification: false, encodeURL: true, }, assertions: { assertions: [baseAssertion], }, }, ], }, }; export const validTestWithEnvironmentsAndAssertions = { kind: 'test', metadata: { name: 'TestPayments', version: '1.0.0', tags: ['functional'], namespace: 'default', }, spec: { api: { $endpoint: 'www.test.com', }, environment: [ { $ref: 'default:TestPaymentsEnvironment:1.0.0' }, { $ref: 'default:TestPaymentsEnvironment:2.0.0' }, ], request: [ { method: 'POST', resource: 'v2/pet', headers: [ { key: 'Content-Type', value: '${content-type}', }, ], auth: { noauth: true, }, payload: { raw: { json: '{\n "name":"Jose"\n}\n', }, }, settings: { sslVerification: false, encodeURL: true, }, assertions: [ { $ref: 'default:TestPaymentAssertion:1.0.0' }, { $ref: 'default:TestPaymentAssertion:2.0.0' }, ], }, { method: '${method}', resource: 'v2/pet', headers: [ { key: 'Content-Type', value: '${content-type}', }, ], auth: { noauth: true, }, payload: { raw: { json: '{\n "name":"Adam"\n}\n', }, }, settings: { sslVerification: false, encodeURL: true, }, assertions: { assertions: [baseAssertion], }, }, ], }, }; export const validTests = [ validTest, { ...validTest, metadata: { ...validTest.metadata, name: 'TestPayments2', }, spec: { ...validTest.spec, environment: { variables: [ { isSecret: false, key: 'key', value: 'value', }, ], }, }, }, ]; export const testWithEmptyEnvironment = { kind: 'test', metadata: { name: 'EmptyRefs', version: '1.0.0', tags: ['functional'], namespace: 'default', }, spec: { api: { $ref: 'PaymentAPI:1.0.1', }, environment: { $ref: '', }, request: [ { method: 'POST', resource: 'v2/pet', headers: [ { key: 'Content-Type', value: 'application/json', }, ], auth: { noauth: true, }, payload: { raw: { json: '{\n "name":"Jose"\n}\n', }, }, settings: { sslVerification: false, encodeURL: true, }, assertions: [{ $ref: 'default:TestPaymentAssertion:1.0.0' }], }, ], }, }; export const testWithEmptyAssertion = { kind: 'test', metadata: { name: 'EmptyRefs', version: '1.0.0', tags: ['functional'], namespace: 'default', }, spec: { api: { $ref: 'PaymentAPI:1.0.1', }, environment: { $ref: 'default:TestPaymentsEnvironment:1.0.0', }, request: [ { method: 'POST', resource: 'v2/pet', headers: [ { key: 'Content-Type', value: 'application/json', }, ], auth: { noauth: true, }, payload: { raw: { json: '{\n "name":"Jose"\n}\n', }, }, settings: { sslVerification: false, encodeURL: true, }, assertions: { $ref: '', }, }, ], }, }; export const invalidTestMissingKind = { metadata: { name: 'TestPayments', version: '1.0.0', tags: ['functional'], namespace: 'default', }, spec: {}, }; export const invalidTestSchema = { kind: 'test', metadata: { namespace: 'example', name: 'brokenTest', version: 1, // Invalid type }, spec: {}, }; export const unsupportedKind = { kind: 'foo', metadata: { namespace: 'unknown', name: 'unsupported', version: '1.0', }, spec: {}, };