Skip to content

cinoss/cupl

Repository files navigation

Cupl

A CLI tool for automatic CUcumber gherkin feature files generation from PLantuml activity diagram.

Version CircleCI Codecov Downloads/week License oclif

Cupl will help you transform .puml file of this diagram.

ATM Activity Diagram

Into this Gherkin feature description

Feature: Simple ATM withdrawal No PIN retry, No Amount re-enter Scenario: Successful transaction Given Entered Correct PIN number And Balance is sufficient When enter amount Then dispense notes And print receipt And eject the card @important Scenario: Not enough money Given Entered Correct PIN number And Insufficient balance When enter amount Then display "Insufficient balance" And eject the card Scenario Outline: PIN is incorrect Given User's PIN is <pin> When insert card And User enters <input> Then display "incorrect PIN" And eject the card Examples:  | pin | input |  | 123456 | 325212 |  | 123456 | |

Usage

Conventions

  • User/Core activity must start with @ symbol, these will go to When steps of Gherkin file.
  • If condition must be a statement that end with ?, the question mark will be drop while parsing.

is PIN correct?

PIN is correct?

  • Else branch must be descriptive.

no

false

PIN is incorrect

  • Activity must not contain (!), if it ends with !, the activity will be consider as an Given.

Basic

  1. create a .puml file and run
$ npx cupl FILE.puml Feature: ... ...
  1. a .cupl.json file will be generated to allow you to
  • Rename Scenario ( by name field).
  • Rename rename steps ( by alias dictionary) and insert parameters.
  • Rename add @tag to Scenario and steps (by tags field - array of strings).
  • Rename change Gherkin dialect.
  • Provide examples.

Example:

{ "$schema": "https://raw.githubusercontent.com/cinoss/cupl/master/src/config.schema.json", "global": { "alias": { "PIN is correct": "Entered Correct PIN number" }, "dialect": "en" }, "paths": { "PIN is correct|Balance is sufficient": { "name": "Successful transaction" }, "PIN is correct|Insufficient balance": { "name": "Not enough money", "tags": ["important"] }, "PIN is incorrect": { "alias": { "PIN is incorrect": "User's PIN is <pin>", "enter PIN": "User enters <input>" }, "examples": [ ["pin", "input"], ["123456", "325212"], ["123456", ""] ] } } }
  1. Run cupl again with -w flag to generate a file.
$ npx cupl -w FILE.puml Feature: ... ... Generated [FILE].feature successfully!

Install globally

$ npm install -g cupl $ cupl FILE running command... ...

Syntax Support

Gherkin

  • Feature
  • Example (or Scenario)
  • Given, When, Then, And, But for steps (or *)
  • Tags
  • Examples
  • Background
  • Scenario Outline (or Scenario Template)
  • Data Tables
  • Rule
  • Doc Strings
  • Comments

PlantUML Activity Diagram (New Syntax)

  • start, stop, end
  • if, elseif, endif
  • title, end title
  • note, end note
  • SDL (|, <, >, /, ], })
  • repeat, repeat while, backward, while, end while
  • fork, end fork
  • Colors
  • Arrow
  • Connector
  • Grouping
  • Swimlanes
  • Detach

About

Easily manage Cucumber Gherkin files using PlantUML activity diagrams

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •