Socket
Socket
Sign inDemoInstall

website-spec

Package Overview
Dependencies
0
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    website-spec

A domain specific language (DSL) for functional/E2E web testing.


Version published
Maintainers
1
Install size
51.8 kB
Created

Readme

Source

Website spec

A domain specific language (DSL) for functional/E2E web testing.

Spec DSL language example

Supported frameworks

As the DSL is compiled into an intermediary representation, that representations has to be transformed into actual test code.

You can write your own compiler for your preferate test framework, or use one of those that are bundled in:

  • Intern.js

If you're interested only in the grammar, then you can check grammar.test.js file for examples.

Parsing is done by:

const nearley = require('nearley')
const grammar = require('website-spec').grammar

const p = new nearley.Parser(grammar.ParserRules, grammar.ParserStart)
p.feed('Click on button `.red`') // Pass only single-line text

console.log(p.results) // parsed tree

Syntax highlighting in IDE

Following IDEs syntax highlightings are available:

  • SublimeText 3 - you'll have to install it manually into editor packages' User folder (Preferences -> Browse Packages opens the packages folder).

Build and test

  • Install deps npm install
  • Build npm run build - that will build ant test the grammar

If you want to build or test only then check package.json file for those instructions separately.

Modify the language

The language tries to be fairly simple. Unsuported functionality is expected to be covered with custom instructions (see custom instructions below).

Grammar is written, generated and parsed using nearley.

Syntax

The DSL supports one instruction per line. Grammar parser expects non-indented lines. So indentation has to be handled in each framework compiler separately. Grammar parser generates a simple flat syntax tree.

Check grammar tests for examples of supported commands and generated trees.

For supported instructions see Intern example

Keywords

FAQs

Last updated on 24 Oct 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc