‚̧Newly Purchased Memories
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org ¬Ľ

    ava-specpublic

    AVA Spec

    Build Status

    Installation

    AVA Spec is meant to be installed next to AVA, so please follow its installation instructions first.

    Then, install ava-spec as a development dependency:

    $ npm install --save-dev ava-spec
    

    You still run tests with ava command. The only thing that changes are tests themselves.

    Usage

    First of all, you can use ava-spec as a drop-in for ava:

    import test from 'ava-spec';
     
    test('AVA Spec is 100% compatible with ava', t => {
      t.is(true, true);
    });

    Jasmine-like DSL is supported:

    import {describe} from 'ava-spec';
     
    describe('AVA Spec', it => {
      it('can look almost like jasmine', t => {
        t.deepEqual([1, 2], [1, 2]);
      });
     
      it.todo('supports all chaining modifiers!');
    });

    Or write cucumber-like scenarios:

    import {feature} from 'ava-spec';
     
    feature('Cash withdrawal.', scenario => {
      scenario('Not enough money in ATM', t => {
        // Cucumber-like keywords are available
      });
    });

    Or just group tests together:

    test.serial.skip.group(test => {
      test('AVA Spec can be used to just group some tests', t => {
        t.not(true, false);
      });
    });

    Last but not least you can pass groups around in fun ways:

    const subject = test.describe('You');
     
    subject('do not need to use callbacks!', t => {
      t.is(2 + 2, 4);
    });

    Result:

      - AVA Spec can be used to just group some tests
      ‚úĒ AVA Spec is 100% compatible with ava
      ‚úĒ AVA Spec can look almost like jasmine
      - AVA Spec supports all chaining modifiers!
      ‚úĒ Cash withdrawal. Not enough money in ATM
      ‚úĒ You do not need to use callbacks!
    
      4 tests passed
      1 test skipped
      1 test todo
    

    API

    AVA spec allows you to define test groups using 3 equivalent methods:

    test.describe([title], implementation)

    test.feature([title], implementation)

    test.group([title], implementation)

    title

    Type: string

    A group title.

    implementation(ava)

    Type: function

    It is called by AVA Spec with modified AVA instance as so:

    1. Group modifiers are applied to all tests inside it
    2. Group title is prefixed to all test titles inside it

    Caveats

    Currently AVA Spec doesn't support per-group hooks. It's a feature planned for 1.1.0.

    Team

    Adam Stankiewicz Please help me!
    Adam Stankiewicz Become co-author!

    install

    npm i ava-spec

    Downloadsweekly downloads

    847

    version

    1.1.1

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar