Add tests for when-some, plus one for when-let.#851
Open
alysbrooks wants to merge 1 commit intojank-lang:mainfrom
Open
Add tests for when-some, plus one for when-let.#851alysbrooks wants to merge 1 commit intojank-lang:mainfrom
alysbrooks wants to merge 1 commit intojank-lang:mainfrom
Conversation
when-some and when-let behave very similarly. This adds the opposite case of one of these tests to when-let.
600b193 to
2f91dca
Compare
E-A-Griffin
reviewed
Feb 22, 2026
| (is (nil? (when-let [x nil] x)))) | ||
| (testing "basic single-binding tests using seqs" | ||
| (is (= '(0 1 2 3 4) (when-let [x (range 5)] x)))) | ||
| (testing "unlike, when-some, we're looking for not-nil specifically, so false evaluates" |
Collaborator
There was a problem hiding this comment.
This is a good test but I feel like the testing string is backwards?
E-A-Griffin
reviewed
Feb 22, 2026
| (when-var-exists when-some | ||
| (deftest test-when-some | ||
| (testing "basic single-binding tests using vectors or nil" | ||
| (is (= [0 1 2 3 4] (when-some [x [0 1 2 3 4] ] x))) |
Collaborator
There was a problem hiding this comment.
Suggested change
| (is (= [0 1 2 3 4] (when-some [x [0 1 2 3 4] ] x))) | |
| (is (= [0 1 2 3 4] (when-some [x [0 1 2 3 4]] x))) |
E-A-Griffin
reviewed
Feb 22, 2026
| (deftest test-when-some | ||
| (testing "basic single-binding tests using vectors or nil" | ||
| (is (= [0 1 2 3 4] (when-some [x [0 1 2 3 4] ] x))) | ||
| (is (not (nil? (when-some [x [nil]] x)))) |
Collaborator
There was a problem hiding this comment.
some? is probably better here than (not (nil? ...))
E-A-Griffin
reviewed
Feb 22, 2026
| (is (= [0 1 2 3 4] (when-some [x [0 1 2 3 4] ] x))) | ||
| (is (not (nil? (when-some [x [nil]] x)))) | ||
| (is (= [] (when-some [x []] x))) | ||
| (is (nil? (when-some [x nil] x)))) |
Collaborator
There was a problem hiding this comment.
Probably better to test here that a side-effect doesn't get evaluated since the test condition fails
Member
There was a problem hiding this comment.
Yes, this is important. You could use an atom for this.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
when-someandwhen-letbehave very similarly so this actually reuses a large number of tests fromwhen-let. It also adds the opposite case of one of these tests to when-let.