CILicenseVersionDocs

Still in alpha. Expect rough edges, cryptic error messages and generally unpolished experience.

Cuerdo

Transform Arazzo documents into executable property-based tests.

Installation

Add :cuerdo to the list of dependencies in mix.exs

def deps do
[
{:cuerdo, "~> 0.1"}
]
end

Features

Quick Start

Execute workflows with automatically generated input as part of your test suite

defmodule MyTest do
use Cuerdo.ArazzoCase
arazzo_document_test document: YamlElixir.read_from_file!("arazzo.yaml")
end

Or execute a workflow directly

iex> inputs = %{"email" => "user@example.com", "password" => "securePassword"}
iex> document = YamlElixir.read_from_file!("arazzo.yaml")
iex> {:ok, context} = Cuerdo.Arazzo.run_workflow(inputs, "createUserWorkflow", document)
iex> Cuerdo.Arazzo.Context.workflow_outputs(context, "createUserWorkflow")
%{"token" => "userSessionToken"}

For more in-depth information and guides refer to any of the useful links

Contributions are welcome, please read Contributing before creating any issue or pull request.

Unsupported features and limitations

AsyncAPI

All steps and workflows are assumed to execute synchronously and in the order they are defined. AsyncAPI features and fields are unsupported as there is no current way of validating that a message was published to an out-of-band broker or queue

Workflow

Step

Condition and Expression

Failing cases do not shrink at the moment