2.0 KiB
2.0 KiB
(Vague) Jasmine 2.0 Goals/(Guidelines)
- No globals!
- jasmine library is entirely inside
jasminenamespace - globals required for backwards compatibility should be added in
boot.js(EG, var describe = jasmine.getCurrentEnv().describe lives in boot.js)
- Don't use properties as getters. Use methods.
- Properties aren't encapsulated -- can be mutated, unsafe.
- Reporters get data objects (no methods).
- easier to refactor as needed
- More unit tests - fewer nasty integration tests
Remaining non-story-able work:
- Make a
TODOlist
Hard
- Finish killing Globals
- Guidelines: everything that isn't a CTOR should be closed inside
Env, and everything that is a CTOR needs to benewed inside theEnv - Spies
- isA functions:
- isArray_ - used in matchers and spies
- isString_
- isDOMNode_
- isA_
- unimplementedMethod_, used by PrettyPrinter
- jasmine.util should be util closure inside of env or something
- argsToArray is used for Spies and matching
- inherit is for how matchers are added/mixed in, reporters, and pretty printers
- formatException is used only inside Env/spec
- htmlEscape is for messages in matchers - should this be HTML at all? Is that Reporter responsibility?
- Guidelines: everything that isn't a CTOR should be closed inside
- Suites need to be unit-tested
- Remove Queue from Suite in favor of queuerunner refactoring
- Remover Runner in favor of a top-level Suite
- This means Env needs to
newaSuitefirst thing
- This means Env needs to
- get feature parity back on HTMLReporter
Easy
- Refactor
queuerunnerinto a new object - xdescribe / xit make skipped specs instead of empty blocks
Other Topics
- Build - can we, should we redo the build and release process AGAIN in order to make it less arcane
- Docs
- JsDoc is a pain to host and RubyMine is pretty good at navigating. I say we kill it officially
- Docco has gone over well. Should we annotate all the sources and then have Pages be more complex, having tutorials and annotated source like Backbone? Are we small enough?