Can't run effectful tests
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Domain
- testing
Research direction
Read the Test/QuickCheck.purs definition linked in the issue, especially the Gen-based property API. The report asks to support testing effectful functions without unsafePerformEffect; use the Blockly code2blockly then blockly2code round trip as the example. Done means an effectful property can express that round trip and verify the original code is returned.
Written by the indexing model from the issue text.
Description
I have a case that I think is quite legitimate where I want to quickcheck an effectful function however I can't because https://github.com/purescript/purescript-quickcheck/blob/v5.0.0/src/Test/QuickCheck.purs#L97 uses the concrete Gen monad.
My usecase is testing Blockly code2blockly and blockly2code functions. Since Blockly is a very mutable javascript library, both code2blockly and blockly2code have Effect types. In order to test my implementation of these functions I can take some code and basically run code2blockly followed by blockly2code and I should get the original code back. Currently I'm doing this with unsafePerformEffect 😱 but since tests are actually Effects I don't think this is really necessary.
- Dominant language
- PureScript
- Stars
- 108
- Forks
- 42
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 1
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from purescript/purescript-quickcheck
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
purescript/purescript-quickcheck#136 · 1 comment ·
-
Lazy List Arbitrary InstancePossibly taken @eviefp claimed this 2206 days ago. Opentype: enhancement
Difficulty 3/5 1-2 days Newbie friendliness 20/100
purescript/purescript-quickcheck#111 · 2 comments · 2 reactions ·
-
type: documentation
Difficulty 1/5 Under an hour Newbie friendliness 55/100
-
purs-0.15 type: breaking change
Difficulty 5/5 Over a week Newbie friendliness 20/100
purescript/purescript-quickcheck#104 · 12 comments ·
-
ShrinkingOpentype: enhancement
Difficulty 5/5 Over a week Newbie friendliness 15/100
purescript/purescript-quickcheck#103 · 6 comments · 4 reactions ·
All issues in purescript/purescript-quickcheck
Similar issues
-
[prefer-expect-resolves] autofix leaves a stray ")" when the awaited expression is parenthesizedOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
jest-community/eslint-plugin-jest#2052 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
johanhaleby/occurrent#1505 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
jeanibarz/knowledge-base-mcp-server#1262 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
future-agi/future-agi#4092 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day