-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(integ-tests): make assertions on deployed infrastructure #20071
feat(integ-tests): make assertions on deployed infrastructure #20071
Conversation
This PR introduces a new group of constructs that allow you to make assertions against deployed infrastructure. TODO: - [ ] Add more assertion types (i.e. objectContaining) - [ ] Update integ-runner to collect the assertion results - [ ] Assertion custom resources should not(?) be part of the snapshot diff - [ ] Assertions need to be run on every deploy (i.e. update workflow) but that should not be part of the snapshot diff
Current experience const app = new App();
const stack = new Stack(app, 'aws-stepfunctions-tasks-eventbridge-put-events-integ');
const eventBus = new events.EventBus(stack, 'EventBus', {
eventBusName: 'MyEventBus1',
});
const putEventsTask = new stepfunctions_tasks.EventBridgePutEvents(stack, 'Put Custom Events', {
entries: [{
// Entry with no event bus specified
detail: sfn.TaskInput.fromObject({
Message: 'Hello from Step Functions!',
}),
detailType: 'MessageFromStepFunctions',
source: 'step.functions',
}, {
// Entry with EventBus provided as object
detail: sfn.TaskInput.fromObject({
Message: 'Hello from Step Functions!',
}),
eventBus,
detailType: 'MessageFromStepFunctions',
source: 'step.functions',
}],
});
const sm = new sfn.StateMachine(stack, 'StateMachine', {
definition: putEventsTask,
timeout: Duration.seconds(30),
});
new IntegTest(app, 'IntegTest', {
testCases: [
new IntegTestCase(app, 'TestCase', {
stacks: [stack],
}),
],
});
const assert = new DeployAssert(
stack,
);
// Start an execution
const start = assert.queryAws({
api: 'startExecution',
service: 'StepFunctions',
parameters: {
stateMachineArn: sm.stateMachineArn,
},
});
// describe the results of the execution
const describe = assert.queryAws({
api: 'describeExecution',
service: 'StepFunctions',
parameters: {
executionArn: start.getAttString('executionArn'),
},
});
// assert the results
assert.registerAssertion(describe.assertEqual({
status: 'SUCCEEDED',
}, 'success')); |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
Thank you for contributing! Your pull request will be updated from master and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
Thank you for contributing! Your pull request will be updated from master and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
This PR introduces a new group of constructs that allow you to make
assertions against deployed infrastructure. They are not exported yet
so we can work through the todo list in follow up PRs.
TODO:
diff
but that should not be part of the snapshot diff
All Submissions:
Adding new Unconventional Dependencies:
New Features
yarn integ
to deploy the infrastructure and generate the snapshot (i.e.yarn integ
without--dry-run
)?By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license