Skip to content
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(events): make target optional in onXxx() methods #2921

Merged
merged 7 commits into from
Jun 19, 2019

Conversation

jogold
Copy link
Contributor

@jogold jogold commented Jun 19, 2019

Make target optional in OnEventOptions so that it is no required when calling a onXxx()
method.

This allows to use "preconfigured" rules in other constructs.

Update awslint:events-method-signature to enforce optional options parameter in onXxx() method signatures.

Closes #2913


Pull Request Checklist

  • Testing
    • Unit test added (prefer not to modify an existing test, otherwise, it's probably a breaking change)
    • CLI change?: coordinate update of integration tests with team
    • cdk-init template change?: coordinated update of integration tests with team
  • Docs
    • jsdocs: All public APIs documented
    • README: README and/or documentation topic updated
    • Design: For significant features, design document added to design folder
  • Title and Description
    • Change type: title prefixed with fix, feat and module name in parens, which will appear in changelog
    • Title: use lower-case and doesn't end with a period
    • Breaking?: last paragraph: "BREAKING CHANGE: <describe what changed + link for details>"
    • Issues: Indicate issues fixed via: "Fixes #xxx" or "Closes #xxx"
  • Sensitive Modules (requires 2 PR approvers)
    • IAM Policy Document (in @aws-cdk/aws-iam)
    • EC2 Security Groups and ACLs (in @aws-cdk/aws-ec2)
    • Grant APIs (only if not based on official documentation with a reference)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license.

Make `target` optional in `OnEventOptions` so that it is no required when calling a `onXxx()`
method.

This allows to use "preconfigured" rules in other constructs.

Closes aws#2913
@jogold jogold requested a review from a team as a code owner June 19, 2019 07:34
Copy link
Contributor

@eladb eladb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it valid to provision a Rule without any targets? If not, then maybe we want to implement “validate” at the rule level?

Test for this?

@jogold
Copy link
Contributor Author

jogold commented Jun 19, 2019

@eladb
Copy link
Contributor

eladb commented Jun 19, 2019

Okay, so let’s just add a test

@eladb
Copy link
Contributor

eladb commented Jun 19, 2019

It’s fishy that nothing broke at the consumption side when this changes from required to optional. I’d expect some null check...

@jogold
Copy link
Contributor Author

jogold commented Jun 19, 2019

It’s fishy that nothing broke at the consumption side when this changes from required to optional. I’d expect some null check...

https://github.com/awslabs/aws-cdk/blob/83eee09e8198ae1921b932c09a6d14c88392800d/packages/%40aws-cdk/aws-events/lib/rule.ts#L115-L127

There's one already

@jogold
Copy link
Contributor Author

jogold commented Jun 19, 2019

Okay, so let’s just add a test

https://github.com/awslabs/aws-cdk/blob/83eee09e8198ae1921b932c09a6d14c88392800d/packages/%40aws-cdk/aws-events/test/test.rule.ts is full of rules created without targets, what kind of test do you want to add? something in the onXxx() method of another package ?

An extra test in rds without target?
https://github.com/awslabs/aws-cdk/blob/83eee09e8198ae1921b932c09a6d14c88392800d/packages/%40aws-cdk/aws-rds/test/test.instance.ts#L315-L319

@eladb
Copy link
Contributor

eladb commented Jun 19, 2019

Yes sounds good. Just to exercise this specific path

@eladb eladb merged commit ea10f0d into aws:master Jun 19, 2019
eladb pushed a commit that referenced this pull request Jun 24, 2019
Options are now not required in `onXxx` methods, but IRepository
was not updated to that end.

Related #2921
eladb pushed a commit that referenced this pull request Jun 24, 2019
Options are now not required in `onXxx` methods, but IRepository
was not updated to that end.

Related #2921
eladb pushed a commit that referenced this pull request Jun 24, 2019
Additional fixes like #3036

Options are now not required in onXxx methods, but the interfaces where not updated to that end.

Related #2921
Root cause: aws/jsii#548
@jogold jogold deleted the optional-target branch June 30, 2019 16:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

target should be made optional in OnEventOptions
2 participants