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

qauto

v1.1.2

Published

Create browser tests 10x faster

Downloads

8

Readme

🐺 What is QA Wolf?

QA Wolf is a Node.js library for creating browser tests. Run one command (npx qawolf init) to configure your project and set up CI.

  • Skip writing boilerplate: Your browser actions are converted to Playwright/Jest code.
  • Create stable tests: Your tests automatically wait for elements. Element selectors use test attributes when possible, and CSS/text otherwise.
  • Edit your tests: Edit your code as it is created and add steps to existing tests. Re-run your tests automatically with watch mode.
  • Run tests in CI: A workflow file for your CI provider is automatically created for you.
  • Debug with ease: Each test run includes a video and browser logs.

🖥️ Install

Documentation

Set up your project for browser tests:

cd /my/awesome/project
npm init qawolf
# or yarn create qawolf

Configure your test directory and CI provider:

? rootDir: Directory to create tests in (.qawolf)

? Choose CI Provider (Use arrow keys)
  Azure DevOps
  Bitbucket Pipelines
  CircleCI
❯ GitHub Actions
  GitLab CI/CD
  Jenkins
  Skip CI setup

This will install qawolf, jest and playwright as dev dependencies and create a CI workflow file to:

  • 🐎 Run tests in parallel
  • 📹 Record a video of each test
  • 📄 Capture browser logs

🎨 Create a test

Documentation

npx qawolf create url [name]

💪 Convert your actions into Playwright code:

| Action | Status | Example | | ------------------------------------------------------------ | :----: | ---------------------------------------------------------- | | Click | ✅ | page.click(selectors['0_submit']) | | Type | ✅ | page.type(selectors['0_username'], 'username') | | Scroll | ✅ | qawolf.scroll(page, 'html', { x: 0, y: 200 }) | | Select | ✅ | page.selectOption(selectors['0_ice_cream'], 'chocolate') | | Replace text | ✅ | page.fill(selectors['0_username'], 'username') | | Go back | ✅ | page.goBack() | | Go forward | ✅ | page.goForward() | | Go to | ✅ | page.goTo(url) | | Go to | ✅ | page.goTo(url) | | Add jest step | ✅ | it(name, async()=>{}) | | Paste | ✅ | page.type(selectors['password'], 'pasted') | | Use a test attribute | ✅ | page.click("[data-qa='submit']") | | Use a test attribute on an ancestor | ✅ | page.click("[data-qa='radio'] [value='cat']") | | Use multiple pages/tabs | ✅ | qawolf.waitForPage(page.context(), 1) | | Iframes | 🗺️ | Coming soon | | Drag and drop | 🗺️ | Coming soon | | File upload | 🗺️ | Coming soon | | Back button | 🗺️ | Coming soon |

As your test is created:

  • ✏️ Edit the code as you like
  • 🖥️ Use the REPL to try out commands

✅ Run your tests

Documentation

On Chromium:

npx qawolf test [name]

On Firefox:

npx qawolf test --firefox [name]

On Webkit:

npx qawolf test --webkit [name]

On all browsers:

npx qawolf test --all-browsers [name]

🙋 Get help

We want QA Wolf to work for you, so please reach out to get help!

If you have a feature request or feedback, please open an issue or chat with us.

📝 License

QA Wolf is licensed under BSD-3-Clause.