Skip to content

Tool to read/write Gherkin feature files and to work with Gherkin-AST

License

Notifications You must be signed in to change notification settings

gherking/gherkin-io

Repository files navigation

gherkin-io

Downloads Version@npm Version@git CI Docs

Tool to read/write Gherkin feature files and work with Gherking AST

Usage

Parse feature string

The parse function can be used to parse feature file content to AST.

function parse(content: string, uri: string): Promise<Document>

In TypeScript:

import {parse, Document} from "gherkin-io";
import {TagFormat} from "gherkin-ast";

const document: Document = await parse(
    "Feature: Test\n...",
    "./features/test.feature",
    {tagFormat: TagFormat.FUNCTIONAL} // default
);

In JavaScript:

const {parse} = require("gherkin-io");
const {TagFormat} = require("gherkin-ast");
const document = await read(
    "Feature: Test\n...", 
    "./features/test.feature", 
    {tagFormat: TagFormat.FUNCTIONAL} // default
);

Read feature files

The read function can be used to parse feature file(s) to AST.

function read(pattern: string): Promise<Document[]>

In TypeScript:

import {read, Document} from "gherkin-io";
import {TagFormat} from "gherkin-ast";

const documents: Document[] = await read(
    "./features/*.feature",
    {tagFormat: TagFormat.FUNCTIONAL} // default
);

In JavaScript:

const {read} = require("gherkin-io");
const {TagFormat} = require("gherkin-ast");
const documents = await read(
    "./features/*.feature",
    {tagFormat: TagFormat.FUNCTIONAL} // default
);

Write feature files

The write function can be used to write an AST to a feature file.

function write(filePath: string, document: Document, options?: FormatterOptions): Promise<void>

In TypeScript:

import {Document, write, FormatterOptions} from "gherkin-io";
const document: Document = new Document(/*...*/);
const options: FormatterOptions = {/*...*/};
await write("./test.feature", document, options);

In JavaScript:

const {write, Document} = require("gherkin-io");
const document = new Document(/*...*/);
const options = {/*...*/};
await write("./test.feature", document, options);

FormatterOptions is re-exported from gherkin-formatter.

For detailed documentation see the TypeDocs documentation.