cupl
TypeScript icon, indicating that this package has built-in type declarations

0.1.9 • Public • Published

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

Package Sidebar

Install

npm i cupl

Weekly Downloads

2

Version

0.1.9

License

MIT

Unpacked Size

165 kB

Total Files

19

Last publish

Collaborators

  • cinoss