npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

extract-chai-expects

v1.2.0

Published

Node CLI tool to extract chai assertions - expect statements from JS test files.

Downloads

5

Readme

extract-chai-expects

Node CLI tool to extract chai assertions - expect statements from JS test files.

  • Uses Recast under the hood to parse the JS files and filter expect statements
  • Aggregates the entire list of expect variations
  • Finds the list of unique expects.

INSTALL

npm i extract-chai-expects

USAGE

extract-chai-expects --sourceDir PATH_TO_SOURCE_FOLDER

EXAMPLE

/example/test.js

import { expect } from 'chai';
import { describe, it } from 'mocha';
import { find, findAll } from '@ember/test-helpers';
import { setupRenderingWithMirage, setupWindowMock } from '@freshdesk/test-helpers';

describe('Integration | Component', function() {
  let hooks = setupRenderingWithMirage();
  setupWindowMock(hooks);

  it('basic expect statements', async function() {
    // Simple true validation
    expect(true).to.be.true;
    expect(true, 'expect with message').to.be.true;
    expect(true, 'expect with not').to.not.be.true;

    // Simple false validation
    expect(false).to.be.false;
    expect(true, 'false with not').to.not.be.false;
    expect(false, 'expect with message').to.be.false;
    
    // ok
    expect('Test').to.be.ok;
    expect('Test', 'With message').to.be.ok;
    
    let sampleArr = [1, 2];
    let sampleObj = {"name": "nucleus"};

    // Empty checks
    expect('', 'empty string').to.be.empty;
    expect([], 'empty array').to.be.empty;
    expect({}, 'empty object').to.be.empty;
    expect([1, 2], 'non empty array').to.not.be.empty;
    expect(sampleArr, 'non empty array ref').to.not.be.empty;
    expect({"name": "freshworks"}, 'non empty object').to.not.be.empty;
    expect(sampleObj, 'non empty object ref').to.not.be.empty;

    // Variations in equal assertion
    expect(true).to.equal(true);
    expect(find('[data-test-id=page-title]').innerText.trim(), '[Message] Expression with message').to.equal('[Expected] Page Title');

    // Variations in length
    // Find out if its a dom present case or not present case
    expect(findAll('[data-test-id=page-title]'), '[Message] Multiple elements should be present').to.have.length(2);
    expect(findAll('[data-test-id=page-title]')).to.have.length(1);
    expect(findAll('[data-test-id=page-title]'), '[Message] One Element Present').to.have.length(1); // With message and length 1
    expect(findAll('[data-test-id=page-title]'), '[Message] Element not present').to.have.length(0);
    expect(findAll('[data-test-id=page-title]')).to.have.length(0); // Without message
  });

  it('Expect within a nested block', function() {
	[true, true].forEach(function(item) {
      // Inner Comment
      expect(true).to.be.true;
    });
  });

});

On running extract-chai-expects --sourceDir example/, the following output file gets generated:

output.txt

[
	".to.be.true",
	".to.not.be",
	".to.be.false",
	".to.be.ok",
	".to.be.empty",
	".to.equal",
	".to.have.length"
]