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

reach-et-jest-config

v1.8.2

Published

Jest test config for ET Tools

Downloads

5

Readme

reach-et-jest-config

The standard Jest config for ET projects

Includes:

Install

npm i reach-et-jest-config --save-dev

Setup

Create a jest.config.js file and add the following

/* env node */

const jestConfig = require('@trinitymirrordigital/jest-config');

module.exports =  jestConfig({
  // ... any additional jest config can go here
});

For a list of jest config rules

Transforms

Will automatically pass asset file name as a string for the following:

jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga

Helpers

Simulate Click

Adds global method to jest for to simulate eventListeners:

//In code:
myBtn.addEventListener('click', (e)=>{
	e.preventDefault();
	// do something
})

// In your tests
test(''Testing a click event", ()=>{
	const btn = document.querySelector(''button'');
	simulateEvent(btn, ''click'');
	// Test your code works
});

Simulate KeyEvent

Adds global event to simulate keyboard event:

document.addEventListener('keydown', (e) => {
  if(e.key === 'a') {
     // do something
  }
 
});

// In your tests
test(''Testing a keyboard event", ()=>{
	keyboardEvent = (document.body, ''keydown'', {key: ''a''})
	// Test your code works
});

DOM helpers for Web component

Global functions to find elements within a component shadowRoot:

const myComponent = document.querySelector('my-component');
const btn = queryShadowRoot( myComponent, 'button');
const li = queryShadowRootAll( myComponent, 'li'); // Returns array;

Mock sizing for tests

Jest uses JSDOM to render the DOM, however due to how it works client clientWidth and clientHeight will return 0. So this monkey patches the method to allow you to set a size. It can be done is two ways:

Using mock variables:

const el = document.querySelector('div');
el._MockClientWidth = 100;
el._MockClientHeight = 50;

console.log(el.clientWidth); // return 100
console.log(el.clientHeight); // return 50

Using style variables:

const el = document.querySelector('div');
el.style.width = 100;
el.style.height = 50;

console.log(el.clientWidth); // return 100
console.log(el.clientHeight); // return 50

Web Component expect extensions:

test('my component has a button', ()=>{
  const myComponent = document.querySelector('my-component');
  expect(myComponent).toHaveShadowElement('button');
});

test('my component button has a css class', ()=>{
  const myComponent = document.querySelector('my-component');
  expect(myComponent).toHaveShadowClass('button', 'my-css-class');
})

Copyright (c) 2019 "Reach Shared Services Ltd"