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

Bugfix related to events which were excluded that had not tags #19

Merged
merged 1 commit into from Nov 17, 2016
Merged

Bugfix related to events which were excluded that had not tags #19

merged 1 commit into from Nov 17, 2016

Conversation

benleen
Copy link
Contributor

@benleen benleen commented Nov 9, 2016

Resolves #18

Copy link
Contributor

@arb arb left a comment

Choose a reason for hiding this comment

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

Also need to document this somehow.

@@ -71,7 +71,7 @@ class Squeeze extends Stream.Transform {
}

// If include & exclude is an empty array, we do not want to do any filtering
if (subEventTags.include.length === 0 && subEventTags.exclude.length === 0) {
if (subEventTags.include.length === 0 && (subEventTags.exclude.length === 0 || tags.length === 0)) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Couldn't we move the check for tags.length === 0 up to it's own line? Like if an even doesn't have any tags at all we can neither include or exclude them right?

Copy link
Contributor Author

@benleen benleen Nov 14, 2016

Choose a reason for hiding this comment

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

This does mean that when you set up rules to only include events with tag "x", you will still also get the events without tags. Is this the desired behaviour?

Copy link
Contributor

Choose a reason for hiding this comment

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

I mean move the check for tags.length === 0 and return false there and short circuit the rest of this logic? Looking at the tests, it looks like if the event doesn't have any tags, it returns false anyway. Then you wouldn't need this change I don't think.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It does return true in case we do include: '*' (which is the same as not defining include tags)
https://github.com/hapijs/good-squeeze/blob/master/test/index.js#L93-L98

As mentioned in the issue #18. When you add any exclude tags to the above all events without tags are excluded suddenly. Which is unwanted behaviour.

I might not get what you're trying to say all together. :-) Feel free to paste a bigger code snippet if you like in that case.

@benleen
Copy link
Contributor Author

benleen commented Nov 17, 2016

How would you like me to document? It seemed like a bug to me.

@arb arb added the bug Bug or defect label Nov 17, 2016
@arb arb added this to the 5.0.1 milestone Nov 17, 2016
@arb arb self-assigned this Nov 17, 2016
@arb arb merged commit c613692 into hapijs:master Nov 17, 2016
@benleen
Copy link
Contributor Author

benleen commented Nov 17, 2016

Thanks @arb! Sorry for not adding the label 'bug' right away!

@arb
Copy link
Contributor

arb commented Nov 17, 2016

No worries, we were still debating it being a bug or not 😄

@lock
Copy link

lock bot commented Jan 9, 2020

This thread has been automatically locked due to inactivity. Please open a new issue for related bugs or questions following the new issue template instructions.

@lock lock bot locked as resolved and limited conversation to collaborators Jan 9, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Bug or defect
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Events without tags are being excluded when they shouldn't
2 participants