Skip to content

Releases: dead-claudia/thallium

v0.1.0 (alpha)

11 Jun 12:57
Compare
Choose a tag to compare
v0.1.0 (alpha) Pre-release
Pre-release

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 to slow (current slow threshold) and duration (time to complete test), each in milliseconds.
  • Colors are now toggleable via a color argument in thallium/r/spec and thallium/r/dot. Note that the CLI argument and FORCE_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)

05 Jun 05:01
Compare
Choose a tag to compare
v0.0.22 (alpha) Pre-release
Pre-release

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 with reflect.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(...) and t.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 (was t.add) will not let you overwrite existing methods or values. These must be deleted or set to undefined first.
  • reflect.wrap (was t.wrap) will not let you overwrite t.reflect or the internal t._. These must be deleted or set to undefined first.
  • Clarified docs in several places
  • Several bug fixes

v0.0.20 (alpha)

25 May 14:03
Compare
Choose a tag to compare
v0.0.20 (alpha) Pre-release
Pre-release

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. The value is the error that was thrown, untouched.
    • "skip" - Marks a skipped test block with no children, via t.testSkip() or t.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 to done in an async test. The value is an object with the following properties:
      • count - how many times done has been called in total so far
      • value denotes the last value the callback was called with.
  • There exists two built-in reporters currently:
    • thallium/r/spec - Much like Mocha's spec 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)

19 May 06:58
Compare
Choose a tag to compare
v0.0.18 (alpha) Pre-release
Pre-release

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)

18 May 08:19
Compare
Choose a tag to compare
v0.0.17 (alpha) Pre-release
Pre-release

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 Maps a lot and is very highly coupled to that representation.

v0.0.16 (alpha)

12 May 02:14
Compare
Choose a tag to compare
v0.0.16 (alpha) Pre-release
Pre-release

Changes since v0.0.15

  • Fixed bug where CLI pulled from its own node_modules instead of the node_modules nearest to the current working directory
  • Couple minor docs fixes

v0.0.15 (alpha)

10 May 09:00
Compare
Choose a tag to compare
v0.0.15 (alpha) Pre-release
Pre-release

Changes since v0.0.14

  • npm package fixes

v0.0.14 (alpha)

10 May 08:53
Compare
Choose a tag to compare
v0.0.14 (alpha) Pre-release
Pre-release

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)

10 May 08:34
Compare
Choose a tag to compare
v0.0.13 (alpha) Pre-release
Pre-release

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 if techtonic is present.
      • techtonic - the Techtonic instance to use. This takes higher precedence than the module 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).
  • Node 6 is supported and tested.
  • A lot of bug fixes.
  • More internal changes.

v0.0.12

02 Apr 01:18
Compare
Choose a tag to compare
v0.0.12 Pre-release
Pre-release

Changes since v0.0.11

npm release is not broken

Changes since v0.0.9

  • New assertions:
    • t.exists(value) -value is not null/undefined
    • t.notExists(value) - value is null/undefined
    • t.match(a, b) - similar to t.deepEqual(a, b), but ignoring types
    • t.notMatch(a, b) - similar to t.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), like t.hasMatchKeys(object, keys)
      • t.notHasMatchAllKeys(object, keys), like t.notHasMatchAllKeys(object, keys)
      • t.hasMatchAnyKeys(object, keys), like t.hasMatchAnyKeys(object, keys)
      • t.notHasMatchKeys(object, keys), like t.notHasMatchKeys(object, keys)
      • t.includesMatch(object, keys), like t.includesMatch(object, keys)
      • t.notIncludesMatchAll(object, keys), like t.notIncludesMatchAll(object, keys)
      • t.includesMatchAny(object, keys), like t.includesMatchAny(object, keys)
      • t.notIncludesMatch(object, keys), like t.notIncludesMatch(object, keys)
  • New assertion aliases, for consistency:
    • t.hasMatchLooseKeys for t.hasLooseDeepKeys
    • t.notHasMatchLooseAllKeys for t.notHasLooseDeepKeys
    • t.hasMatchLooseAnyKeys for t.hasLooseDeepAnyKeys
    • t.notHasMatchLooseKeys for t.notHasLooseDeepKeys
    • t.includesMatchLoose for t.includesLooseDeep
    • t.notIncludesMatchLooseAll for t.notIncludesLooseDeepAll
    • t.includesMatchLooseAny for t.includesLooseDeepAny
    • t.notIncludesMatchLoose for t.notIncludesLooseDeep
  • Changed assertions:
    • t.includes*/t.notIncludes* TypeScript definitions fixed
    • Overloads for t.hasKeys, etc. accepting an array of keys are now limited to just t.hasKeys, t.notHasAllKeys, t.hasAnyKeys, and t.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