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

keystone-nightwatch-e2e

v0.2.14

Published

Nightwatch end-to-end testing framework for KeystoneJS applications

Downloads

696

Readme

Keystone End-2-End Functional Testing Framework

The Keystone Nightwatch E2E framework (or simply KNE) is an end-2-end UI/functional testing framework for KeystoneJS and keystoneJS applications.

Installation

npm install keystone-nightwatch-e2e --save-dev

Running

Before running KNE ensure that your keystone application is up and running. To run KNE do the following in your test application.

    var keystoneNightwatchE2e = require('keystone-nightwatch-e2e');
    keystoneNightwatchE2e.startE2E(options, done);

    where options is:

    {
        keystone: <the-keystone-instance>
    }

Command Line Options

KNE may also be passed additional options that control its behavior:

| Option Name | Description | | ------------------------- | --------------| | --selenium-in-background | This option tells KNE to start the selenium server manually, instead of letting Nightwatch start it. Some users in some unix-based platforms have had issues with Nightwatch starting selenium. | | --browser-name | Locally on "firefox" and "chrome" are supported. Please see SauceLab's Platform Configurator for supported browser names. | | --browser-version | Applies to SauceLabs runs only. Locally it will run whatever browser version is installed. Please see SauceLab's Platform Configurator for supported versions. You may also specify "latest". | | --env | The nightwatch context to use. Should be one of: default, saucelabs-local, saucelabs-travis. If not specified, default is used. For local dev testing either default or saucelabs-local should be used. saucelabs-travis should be reserved for travis builds. | | --sauce-username | The SauceLabs user name to create a secured tunnel with SauceLabs. Should be used in combination with --env saucelabs-local or --env saucelabs-travis to perform testing against SauceLabs. You need a SauceLabs account to use this option. | | --sauce-access-key | The SauceLabs access key to create a secured tunnel with SauceLabs. Should be used in combination with --env saucelabs-local or --env saucelabs-travis to perform testing against SauceLabs. You need a SauceLabs account to use this option. | | --group | The test group to run. This is nightwatch terminology. Please see NightwatchJS Test Runner for on this and other options. | | --test | The test to run. This is nightwatch terminology. Please see NightwatchJS Test Runner for on this and other options. |

Examples:

  • node test/e2e/testApp.js --browser-name chrome --group test/e2e/group000
  • node test/e2e/testApp.js --browser-name firefox --test test/e2e/group000/test1.js
  • node test/e2e/testApp.js --env saucelabs-local --browser-name chrome --sauce-username MYUSERNAME --sauce-access-key MYACCESSKEY --group test/e2e/group000
  • node test/e2e/testApp.js --env saucelabs-local --browser-name firefox --browser-version 50 --sauce-username MYUSERNAME --sauce-access-key MYACCESSKEY

NOTES on examples:

  • The first example, runs the group000 tests in chrome in your localhost
  • The second example, runs the group000/test1 test in firefox in your localhost
  • The third example, runs the group000/test1 test in the latest version of chrome in SauceLabs
  • The fourth example, runs all the e2e tests in version 50 of firefox in SauceLabs

Overview

UI/functional end-to-end tests ensure regression coverage of all aspects of a KeystoneJS application as well as ensures that KeystoneJS itself has not regressed on the application functionality. The tests use a real keystone application and should do so with as much available configuration as possible. Please note that this is not a replacement for component-based unit testing, which attempt to do full regression coverage of all the operations a particular application component is responsible for. This framework uses the nightwatchjs.org functional test framework. Thus, if you will be contributing updates to this framework it is a good idea to have some familiarity with its concepts. If all you are interested in is writing your own e2e tests for your own KeystoneJS application then you do not really need to become an expert in NightwatchJS but some familiarity with it is still greatly recommended since you will need to control the nightwatch configuration for your tests. Below we outline all you need to do to get started.

Application Test Environment Setup

For a sample e2e test setup, please refer to the one in KeystoneJS that is used for testing the KeystoneJS AdminUI functionality. Using that structure as a guide in your own application and updating it per your application requirements is considered a reasonable approach to get started. The following is an overview of a simple KNE test application setup:

test/e2e
    testApp.js                              => your main test app server (requires and starts KNE)

    adminUI                                 => adminUI e2e test suite
        tests                               => directory to group all e2e tests
            group000                        => a test group (000 is the group number)
                    test1.js                => first test in test group 000
                    test2.js                => second test in test group 000
                    test3.js                => third test in test group 000
                    ...
                    testMMM.js
            ...
            groupNNN
    modelTestConfig                         => describe your application models to the test framework
       ...                                  => use the KeystoneJS e2e test ones as a guide

    models                                  => test application models
       ...