JSPM

@serenity-js/protractor

2.0.1-alpha.127
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4530
  • Score
    100M100P100Q129818F
  • License Apache-2.0

Test your web apps with Serenity/JS

Package Exports

  • @serenity-js/protractor

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@serenity-js/protractor) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Serenity/JS

Serenity/JS is a Node.js library designed to make acceptance and regression testing of modern full-stack applications faster, more collaborative and easier to scale.

Serenity/JS Protractor

The @serenity-js/protractor module is a Screenplay Patter-style adapter for the Protractor framework, which helps with testing Angular, React, Vue and other frontend web apps.

Configuring Protractor

// protractor.conf.js

// Import the Serenity/JS reporting services, a.k.a. the "Stage Crew Members"
const
    { ArtifactArchiver } = require('@serenity-js/core'),
    { ConsoleReporter } = require('@serenity-js/console-reporter'),
    { Photographer, TakePhotosOfFailures, TakePhotosOfInteractions } = require('@serenity-js/protractor'),
    { SerenityBDDReporter } = require('@serenity-js/serenity-bdd');

exports.config = {
    // Tell Protractor to use the Serenity/JS framework Protractor Adapter
    framework:      'custom',
    frameworkPath:  require.resolve('@serenity-js/protractor/adapter'),
  
    // Configure Serenity/JS to use an appropriate test runner
    // and the Stage Crew Members we've imported at the top of this file
    serenity: {
        runner: 'jasmine',  // or 'cucumber'
        crew: [
            ArtifactArchiver.storingArtifactsAt('./target/site/serenity'),
            ConsoleReporter.forDarkTerminals(),
            Photographer.whoWill(TakePhotosOfFailures),     // or Photographer.whoWill(TakePhotosOfInteractions),
            new SerenityBDDReporter(),
        ]
    },

    // ... other Protractor-specific configuration
};

Learn more about Protractor configuration file.

Interacting with websites and web apps

import { actorCalled } from '@serenity-js/core';
import { Ensure, equals } from '@serenity-js/assertions';
import { BrowseTheWeb, Navigate, Target, Text } from '@serenity-js/protractor';
import { protractor, by } from 'protractor';

class SerenityJSWebsite {
    static header = Target.the('header').located(by.css('h1'));
}

actorCalled('Priya')
    .whoCan(
        BrowseTheWeb.using(protractor.browser_download_url)
    )
    .attemptsTo(
        Navigate.to('https://serenity-js.org'),
        Ensure.that(Text.of(SerenityJSWebsite.header), equals('Next generation acceptance testing')),
)

Template Repositories

The easiest way for you to start writing web-based acceptance tests using Serenity/JS, Protractor and either Jasmine or Cucumber is by using one of the below template repositories: