Comments (6)
Would you like to submit this as a PR?
Yes!
from purescript-spec.
I would welcome utility functions like these as I have been re-inventing that wheel many times over for neodoc
from purescript-spec.
from purescript-spec.
Yeah, this does seem useful. I have some questions/considerations:
- The name
forAll
feels like it's too close toforall
. Would prefer something closer toit
, as it's basically a "multi-it". Perhapsthey
? - I'd prefer to drop the outer
describe
in this definition, keeping it a bit simpler, and not making an assumption that you want a separate level for the foldable. I'm not sure, but you might want to do something like:describe "many things" do they show [2, 4] \n -> (n `mod` 2) `shouldEqual` 0 they show [4, 8] \n -> (n `mod` 4) `shouldEqual` 0
- And as a last thing, is the argument order the way we want? Not saying it isn't, but you might have feedback on that.
Thanks for the suggestion!
from purescript-spec.
- dropping out
describe
is good idea. they
seems good to me.
so at this point it looks like:
they :: ∀ e a f. Foldable f => (a -> String) -> f a -> (a -> Aff e Unit) -> Aff e Unit
they itTitle arb f = for_ arb \a -> it (itTitle a) (f a)
...
describe "format (unformat a) = a" do
they show arb \(str) -> (format $ unformat str) `shouldEqual` (Right str)
...
About order:
I don't have strong opinion on it, but If we leave f
as last argument, then we have two options:
NAME itTitle arb f
, infix usage:itTitle `NAME` arb f
NAME arb itTitle f
, infix usage:arb `NAME` itTitle f
I can't think of a good name (english is not my native language) but there might be some name which will best fit this usage. maybethat
? (show `that` validDates parseAndUnparseComutes
)
from purescript-spec.
Yeah, I could not come with any specific order either, as it doesn't read naturally anyway. I think we should go with what you already have:
they :: ∀ e a f. Foldable f => (a -> String) -> f a -> (a -> Aff e Unit) -> Aff e Unit
Would you like to submit this as a PR?
from purescript-spec.
Related Issues (20)
- Changing timeouts is too difficult HOT 1
- Pursuit docs are not up to date HOT 2
- aroundAll hook HOT 1
- Add flag to run tests in randomised order
- Spec Editor integration HOT 3
- xit HOT 2
- Report output misses last `pending` in each nested `describe`? HOT 1
- itOnly still evalutates? HOT 3
- Add warning to `*Only` HOT 1
- Better reporting for diffs HOT 1
- Use an actual bracket to handle test setup/cleanup HOT 4
- `pulp test` fails on CI HOT 1
- Version 7.3.0 is not in the package set HOT 1
- beforeAll hook and Spec Identity monad HOT 10
- Fix warning in TeamCity file HOT 2
- new Tree type is a breaking api change HOT 3
- Changes in nesting of `describe` causes unexpected changes in reporting HOT 2
- Teamcity reporter overwrites nodes when there are more then one child of a describe HOT 5
- Warning when specifying the type of a Spec HOT 7
- `consoleReporter` not reporting which test that failed when running tests in `parallel` HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from purescript-spec.