Releases: dead-claudia/thallium
Releases · dead-claudia/thallium
v0.1.0 (alpha)
Changes since last version
- All future changes will be noted in
CHANGELOG.md
in the project root until further notice. - A
dot
reporter was added - New assertion:
t.between()
- In reports, the
speed
property was changed toslow
(current slow threshold) andduration
(time to complete test), each in milliseconds. - Colors are now toggleable via a
color
argument inthallium/r/spec
andthallium/r/dot
. Note that the CLI argument andFORCE_COLOR
/FORCE_NO_COLOR
take precedence over the argument. - Command line arguments are correctly parsed for
--color
and--no-color
. supports-color
is no longer depended upon, because all the desired functionality has been replicated elsewhere, with better alignment with the rest of the library.- Types are checked in several of the assertions.
- The reporters now have their own definition files.
- Numerous bug fixes.
v0.0.22 (alpha)
Changes since last release
- Many core reflection methods were pulled into a separate reflection API. These may be accessed via
t.reflect()
, and the methods moved are:t.wrap
->reflect.wrap
t.add
->reflect.add
t.base
->reflect.base
t.reporters
->reflect.activeReporters
t.timeout
(getter, not setter) ->reflect.activeTimeout
t.do
->reflect.do
t.checkInit
->reflect.checkInit
t.AssertionError
->reflect.AssertionError
t.inline
->reflect.inline
t.define
, when not wrapped, is synonymous withreflect.define
- New reflection APIs were added:
reflect.root()
reflect.runnable()
reflect.skipped()
reflect.root()
reflect.async()
reflect.parent()
reflect.methods()
reflect.reporters()
(own, not active)reflect.timeout()
(own, not active)
- The TypeScript definitions now have their methods documented with actual JSDoc-style comments.
t.reporter(...)
andt.use(...)
no longer accept arrays at all, but they are still variadic.t.define
/reflect.define
will not let you overwrite API methods.reflect.add
(wast.add
) will not let you overwrite existing methods or values. These must be deleted or set toundefined
first.reflect.wrap
(wast.wrap
) will not let you overwritet.reflect
or the internalt._
. These must be deleted or set toundefined
first.- Clarified docs in several places
- Several bug fixes
v0.0.20 (alpha)
Changes since last release
- Browser support is officially pulled until I get Sauce Labs, etc. hooked up.
- The reporter API has undergone a complete overhaul to simplify creating them.
"start"
- Marks the start of all running tests, and is the first event fired."enter"
- Marks the start of all child tests within a single test block."leave"
- Marks the end of all child tests within a single test block."pass"
- Marks a passing test block with no children."fail"
- Marks a failing test block with no children. Thevalue
is the error that was thrown, untouched."skip"
- Marks a skipped test block with no children, viat.testSkip()
ort.asyncSkip()
."end"
- Marks the end of all running tests, and is the last event fired."error"
- An internal/reporter error, provided for pretty-printing and the ability to close resources."extra"
- Marks an extra call todone
in an async test. Thevalue
is an object with the following properties:count
- how many timesdone
has been called in total so farvalue
denotes the last value the callback was called with.
- There exists two built-in reporters currently:
thallium/r/spec
- Much like Mocha'sspec
reporter.thallium/r/tap
- A standard TAP producing reporter.
- The programmatic API has been optimized a bit, so it will be faster and take less memory.
- In the source itself, there is now a playground to help with reporter design in case you want to use it.
- Several bug fixes.
See the docs for more details on the new additions.
Also, note that v0.0.19 was skipped over. It was meant to contain most of this, but there was a little breakage to resolve first, and I had already created the tag, so I decided it was easier to keep it.
v0.0.18 (alpha)
Changes since last release
- CLI is tested from Node 0.10 to latest stable (6.x at the time of writing)
- It is officially tested in browsers through Testling [1]
"pending"
reports are now"skip"
reports, to be more semantically correct.- The CLI is now included in the npm release. This does not include any reporters, although they are next on the list.
- The CLI is mostly documented now.
[1] Well...whenever Testling starts working again, it will be. :-(
v0.0.17 (alpha)
Changes since 0.0.16
- Renamed to Thallium
- Now the core is tested all the way to Node 0.10, and is in pure ES5.
- The CLI was removed from the release
- Minor bug fixes and other refactors of core.
Other notes:
The CLI was prematurely released, and there are still major outstanding issues. It will also take a lot more work to convert to ES6 than the core, since it relies on Map
s a lot and is very highly coupled to that representation.
v0.0.16 (alpha)
Changes since v0.0.15
- Fixed bug where CLI pulled from its own
node_modules
instead of thenode_modules
nearest to the current working directory - Couple minor docs fixes
v0.0.15 (alpha)
Changes since v0.0.14
- npm package fixes
v0.0.14 (alpha)
Changes since 0.0.13
- If globs are specified both in the config and CLI, the CLI globs are used exclusively instead.
v0.0.13 (alpha)
Changes since v0.0.12
- There now exists a CLI. Documentation needs to be written, but it can be best summarized as the following:
- Add a
.techtonic.*
config where your tests are. This is an executable script that you can do whatever you want with. - Possibly default-export an object, or a Promise resolving to an object, containing the following members:
module
- the module to use to get a Techtonic instance. It's resolved relative to the config itself, and is ignored iftechtonic
is present.techtonic
- the Techtonic instance to use. This takes higher precedence than themodule
option.files
- a glob or array of globs to read test files from, in addition to what the command line specifies (that behavior will likely change). The globs are resolved relative to the config itself.
- node-interpret is used to figure out what extension to load, so that you can, with no other configuration, load CoffeeScript/LiveScript/TypeScript/etc. files without needing to specify anything extra. You may also specify the hook by either placing a
.js
file (which is checked first) and requiring the hook first, or you may specify an extension with--require coffee:coffee-script/register
(or whatever language you like).
- Add a
- Node 6 is supported and tested.
- A lot of bug fixes.
- More internal changes.
v0.0.12
Changes since v0.0.11
npm release is not broken
Changes since v0.0.9
- New assertions:
t.exists(value)
-value
is not null/undefinedt.notExists(value)
-value
is null/undefinedt.match(a, b)
- similar tot.deepEqual(a, b)
, but ignoring typest.notMatch(a, b)
- similar tot.notDeepEqual(a, b)
, but ignoring types- Assertions with identical matching behavior to
t.match(a, b)
have been added for others, with corresponding TypeScript definitions:t.hasMatchKeys(object, keys)
, liket.hasMatchKeys(object, keys)
t.notHasMatchAllKeys(object, keys)
, liket.notHasMatchAllKeys(object, keys)
t.hasMatchAnyKeys(object, keys)
, liket.hasMatchAnyKeys(object, keys)
t.notHasMatchKeys(object, keys)
, liket.notHasMatchKeys(object, keys)
t.includesMatch(object, keys)
, liket.includesMatch(object, keys)
t.notIncludesMatchAll(object, keys)
, liket.notIncludesMatchAll(object, keys)
t.includesMatchAny(object, keys)
, liket.includesMatchAny(object, keys)
t.notIncludesMatch(object, keys)
, liket.notIncludesMatch(object, keys)
- New assertion aliases, for consistency:
t.hasMatchLooseKeys
fort.hasLooseDeepKeys
t.notHasMatchLooseAllKeys
fort.notHasLooseDeepKeys
t.hasMatchLooseAnyKeys
fort.hasLooseDeepAnyKeys
t.notHasMatchLooseKeys
fort.notHasLooseDeepKeys
t.includesMatchLoose
fort.includesLooseDeep
t.notIncludesMatchLooseAll
fort.notIncludesLooseDeepAll
t.includesMatchLooseAny
fort.includesLooseDeepAny
t.notIncludesMatchLoose
fort.notIncludesLooseDeep
- Changed assertions:
t.includes*
/t.notIncludes*
TypeScript definitions fixed- Overloads for
t.hasKeys
, etc. accepting an array of keys are now limited to justt.hasKeys
,t.notHasAllKeys
,t.hasAnyKeys
, andt.notHasKeys
. The rest just accept objects, and the TypeScript definitions have been updated to reflect this. - The TypeScript definitions for
t.hasKeys
and friends now accept any object, not just those with indexable keys. - Where an object key is required, the type is consistent across all assertions.
- Many internal improvements