@event-inc/pipelines
Version:
Event Inc is a fully managed event bus lets you send and receive data across mission-critical cloud apps, databases and warehouses.
111 lines • 4.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const connections_1 = require("@event-inc/connections");
const createPipeline_1 = require("../logic/createPipeline");
const logic_1 = require("../logic");
const utils_1 = require("@event-inc/utils");
const transform_1 = tslib_1.__importDefault(require("./transform"));
require('dotenv').config();
jest.setTimeout(60000);
describe('Connections APIs Specs', () => {
it('Should create a Stripe to MongoDB pipeline', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const client = (0, connections_1.createClient)(process.env.BUILDABLE_SECRET_KEY, {
baseUrl: process.env.EVENT_INC_API_BASE_URL
});
const source = yield (0, connections_1.createSource)(client, {
type: 'stripe',
group: `my-stripe-source-${(0, utils_1.makeId)(4)}`,
label: `My Stripe Source ${(0, utils_1.makeId)(4)}`,
config: {
STRIPE_SECRET_KEY: process.env.CONNECTIONS_TEST_STRIPE_SECRET_KEY,
},
});
expect(source).toHaveProperty('key');
const destination = yield (0, connections_1.createDestination)(client, {
type: 'mongodb',
group: `my-mongodb-destination-${(0, utils_1.makeId)(4)}`,
label: `My MongoDB Destination ${(0, utils_1.makeId)(4)}`,
config: {
MONGODB_URI: process.env.CONNECTIONS_TEST_MONGODB_URI,
},
});
expect(destination).toHaveProperty('key');
const subscribe = yield (0, connections_1.setEvents)(client, {
type: 'stripe',
key: source.key,
events: ['customer.created', 'customer.deleted'],
});
expect(subscribe).toHaveProperty('success', true);
const pipeline = yield (0, createPipeline_1.createPipeline)(client, {
label: `my-pipeline-${(0, utils_1.makeId)(4)}`,
source: {
key: source.key,
events: ['customer.created'],
},
destination: {
key: destination.key,
action: 'insertOne',
},
settings: {
startToCloseTimeout: '30 minutes',
retry: {
maximumAttempts: 100,
},
},
transformation: {
type: 'javascript',
func: transform_1.default,
},
extractors: [
{
settings: {
startToCloseTimeout: '30 minutes',
retry: {
maximumAttempts: 100,
},
},
type: 'http',
label: 'some_http_extractor',
config: {
url: 'abc.com',
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: {
name: 'someName',
age: 25,
},
},
},
],
});
expect(pipeline).toHaveProperty('key');
const updatedPipeline = yield (0, logic_1.updatePipeline)(client, {
key: pipeline.key,
active: false,
});
expect(updatedPipeline).toHaveProperty('key');
const deletePipelineResult = yield (0, logic_1.deletePipeline)(client, {
key: pipeline.key,
});
expect(deletePipelineResult).toHaveProperty('success', true);
const deleteSourceResult = yield (0, connections_1.deleteSource)(client, {
key: source.key,
});
expect(deleteSourceResult).toHaveProperty('success', true);
const deleteDestinationResult = yield (0, connections_1.deleteDestination)(client, {
key: destination.key,
});
expect(deleteDestinationResult).toHaveProperty('success', true);
}));
it('Should list all pipelines', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const client = (0, connections_1.createClient)(process.env.BUILDABLE_SECRET_KEY, {
baseUrl: process.env.EVENT_INC_API_BASE_URL
});
const pipelineList = yield (0, logic_1.listPipelines)(client);
expect(pipelineList).toHaveProperty('rows');
}));
});
//# sourceMappingURL=pipelines.spec.js.map