-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
77 lines (71 loc) · 25 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<!DOCTYPE html><html><head><title>REST-EZ | Overview</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"><meta name="robots" content="index,follow"><meta name="theme-color" content="#212121"><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><link href="https://fonts.googleapis.com/css?family=Hind:400,700&display=swap" rel="stylesheet"><link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:300,400&display=swap" rel="stylesheet"><link href="https://fonts.googleapis.com/icon?family=Material+Icons%7CMaterial+Icons+Outlined&display=swap" rel="stylesheet"><style>
body, input, button {
font-family: 'Hind', sans-serif;
}
code, .hljs {
font-family: 'Source Code Pro', 'Courier New', Courier, monospace;
}
.icon-font {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px; /* Preferred icon size */
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;
/* Support for IE. */
font-feature-settings: 'liga';
}
.icon-font.outline {
font-family: 'Material Icons Outlined';
}
</style><link href="/rest-ez/docs/assets/codedoc-styles.css" rel="stylesheet"><script async="" defer="" src="/rest-ez/docs/assets/codedoc-bundle.js"></script></head><body><div class="header-0-0-6"><script async="" defer="" src="https://buttons.github.io/buttons.js"></script><a class="github-button" data-color-scheme="no-preference: light; light: light; dark: dark;" data-icon="false" data-show-count="true" data-size="false" href="https://github.com/blossomfinance/rest-ez/">Star</a><br><br><a class="watermark-0-0-5" href="https://github.com/CONNECT-platform/codedoc" target="_blank">Created With<svg viewBox="0 0 536 296" version="1.1" xmlns="http://www.w3.org/2000/svg"><g id="codedoc" transform="translate(-244.000000, -364.000000)" fill-rule="nonzero"><path d="M580,532 C615.346224,532 644,560.653776 644,596 C644,631.346224 615.346224,660 580,660 C544.653776,660 516,631.346224 516,596 C516,560.653776 544.653776,532 580,532 Z M716,532 C751.346224,532 780,560.653776 780,596 C780,631.346224 751.346224,660 716,660 L692,660 C687.581722,660 684,656.418278 684,652 C684,647.581722 687.581722,644 692,644 L716,644 C742.509668,644 764,622.509668 764,596 C764,569.490332 742.509668,548 716,548 L692,548 C687.581722,548 684,544.418278 684,540 C684,535.581722 687.581722,532 692,532 L716,532 Z M468,532 C472.418278,532 476,535.581722 476,540 L476,652 C476,656.418278 472.418278,660 468,660 L444,660 C408.653776,660 380,631.346224 380,596 C380,560.653776 408.653776,532 444,532 L468,532 Z M332,532 C336.418278,532 340,535.581722 340,540 L340,652 C340,656.418278 336.418278,660 332,660 L252,660 C247.581722,660 244,656.418278 244,652 L244,540 C244,535.581722 247.581722,532 252,532 L332,532 Z M580,548 C553.490332,548 532,569.490332 532,596 C532,622.509668 553.490332,644 580,644 C606.509668,644 628,622.509668 628,596 C628,569.490332 606.509668,548 580,548 Z M461,548 L444,548 C417.490332,548 396,569.490332 396,596 C396,622.509668 417.490332,644 444,644 L461,644 L461,548 Z M444,364 C479.346224,364 508,392.653776 508,428 C508,463.346224 479.346224,492 444,492 C408.653776,492 380,463.346224 380,428 C380,392.653776 408.653776,364 444,364 Z M332,364 C336.418278,364 340,367.581722 340,372 C340,376.418278 336.418278,380 332,380 L308,380 C281.490332,380 260,401.490332 260,428 C260,454.509668 281.490332,476 308,476 L332,476 C336.418278,476 340,479.581722 340,484 C340,488.418278 336.418278,492 332,492 L308,492 C272.653776,492 244,463.346224 244,428 C244,392.653776 272.653776,364 308,364 L332,364 Z M580,364 C615.346224,364 644,392.653776 644,428 C644,463.346224 615.346224,492 580,492 L556,492 C551.581722,492 548,488.418278 548,484 L548,372 C548,367.581722 551.581722,364 556,364 L580,364 Z M772,364 C776.418278,364 780,367.581722 780,372 C780,376.418278 776.418278,380 772,380 L700,380 L700,420 L772,420 C776.418278,420 780,423.581722 780,428 C780,432.418278 776.418278,436 772,436 L700,436 L700,476 L772,476 C776.418278,476 780,479.581722 780,484 C780,488.418278 776.418278,492 772,492 L692,492 C687.581722,492 684,488.418278 684,484 L684,372 C684,367.581722 687.581722,364 692,364 L772,364 Z M444,380 C417.490332,380 396,401.490332 396,428 C396,454.509668 417.490332,476 444,476 C470.509668,476 492,454.509668 492,428 C492,401.490332 470.509668,380 444,380 Z M580,380 L563,380 L563,476 L580,476 C606.509668,476 628,454.509668 628,428 C628,401.490332 606.509668,380 580,380 Z"></path></g></svg></a></div><div id="-codedoc-container" class="container"><div class="darklight-0-0-1"><div class="light"><p><img src="./docs/images/logo.png" alt="REST-EZ" title="REST-EZ Logo"></p></div><div class="dark"><p><img src="./docs/images/logo-dark.png" alt="REST-EZ" title="REST-EZ Logo Dark"></p></div></div><h2 id="overview" class="heading-0-0-2"><span class="anchor-0-0-3" data-ignore-text=""><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span>Overview</h2><h3 id="what-is-it" class="heading-0-0-2"><span class="anchor-0-0-3" data-ignore-text=""><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span>What is it?</h3><p>REST-EZ is a <strong>declarative</strong>, <strong>specification based</strong> test framework for HTTP (ex: REST & GraphQL) APIs. In short, you test APIs without writing code (<em>declarative</em>, not <em>procedural</em>).</p><h3 id="how-does-it-work" class="heading-0-0-2"><span class="anchor-0-0-3" data-ignore-text=""><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span>How does it work?</h3><p><strong>YAML files define sets of requests & response validations</strong></p><p>Each <strong>suite</strong> can have one or more <strong>specs</strong>. For each <strong>spec</strong>, REST-EZ:</p><ol><li><a href="/rest-ez/docs/request/request-basics">Builds the request</a></li><li>Sends the request to the server</li><li><a href="/rest-ez/docs/response-validation/overview">Validates the response</a></li></ol><h2 id="documentation" class="heading-0-0-2"><span class="anchor-0-0-3" data-ignore-text=""><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span>Documentation</h2><ul><li><a href="/rest-ez/docs/getting-started/installation">Installation</a></li><li><a href="/rest-ez/docs/getting-started/rest-api">Getting Started</a></li><li><a href="/rest-ez/docs/basics/overview">Basic Concepts</a></li><li><a href="/rest-ez/docs/request/request-basics">Requests</a><ul><li><a href="/rest-ez/docs/request/headers">Headers</a></li><li><a href="/rest-ez/docs/request/cookies">Cookies</a></li><li><a href="/rest-ez/docs/request/query-parameters">Query Parameters</a></li><li><a href="/rest-ez/docs/request/query-parameters">Path Parameters</a></li><li><strong>Request Body</strong><ul><li><a href="/rest-ez/docs/request/payload-body/json-body">JSON Body</a></li><li><a href="/rest-ez/docs/request/payload-body/binary-data">Binary Data</a></li><li><a href="/rest-ez/docs/request/payload-body/url-encoded-form-data">URL Encoded Form Data</a></li><li><a href="/rest-ez/docs/request/payload-body/url-encoded-form-data">URL Encoded Form Data</a></li><li><a href="/rest-ez/docs/request/payload-body/multi-part-form-data">Multi-Part Form Data</a></li></ul></li><li><a href="/rest-ez/docs/request/file-uploads">File Uploads</a></li><li><a href="/rest-ez/docs/request/additional-options">Additional Options</a></li></ul></li><li><a href="/rest-ez/docs/response-validation/overview">Response Validation</a><ul><li><a href="/rest-ez/docs/response-validation/status-code">Status Code Validation</a></li><li><a href="/rest-ez/docs/response-validation/cookies">Cookie Validation</a></li><li><a href="/rest-ez/docs/response-validation/headers">Header Validation</a></li><li><a href="/rest-ez/docs/response-balidation/body/overview">Body Validation</a><ul><li><a href="/rest-ez/docs/response-validation/body/json-path">JSON Path</a></li><li><a href="/rest-ez/docs/response-validation/body/json-schema-inline">JSON Schema Inline</a></li><li><a href="/rest-ez/docs/response-validation/body/json-schema-file">JSON Schema File</a></li><li><a href="/rest-ez/docs/response-validation/body/swagger-open-api">Swagger / Open API</a></li></ul></li></ul></li><li><a href="/rest-ez/docs/hooks/overview">Lifecycle Hooks</a><ul><li><strong>Hook Types</strong><ul><li><a href="/rest-ez/docs/hooks/types#js-synchronous-functions">JS Inline Functions</a></li><li><a href="/rest-ez/docs/hooks/types#js-async-functions">JS Async Inline Functions</a></li><li><a href="/rest-ez/docs/hooks/types#js-from-external-files">JS Modules</a></li></ul></li><li><strong>List of Hooks</strong><ul><li><a href="/rest-ez/docs/hooks/list#before_all">before_all</a></li><li><a href="/rest-ez/docs/hooks/list#after_all">after_all</a></li><li><a href="/rest-ez/docs/hooks/list#before_each">before_each</a></li><li><a href="/rest-ez/docs/hooks/list#after_each">after_each</a></li><li><a href="/rest-ez/docs/hooks/list#before_test">before_test</a></li><li><a href="/rest-ez/docs/hooks/list#after_test">after_test</a></li></ul></li><li><strong>Hook Context</strong><ul><li><a href="/rest-ez/docs/hooks/context#suite">Suite Context</a></li><li><a href="/rest-ez/docs/hooks/context#test">Test Context</a></li><li><a href="/rest-ez/docs/hooks/context#response">Response Context</a></li></ul></li></ul></li><li><a href="/rest-ez/docs/reusing-specs/overview">Reusing Specs & DRY</a><ul><li><a href="/rest-ez/docs/reusing-specs/looping">Looping</a></li><li><a href="/rest-ez/docs/reusing-specs/yaml-anchors">Yaml Anchors</a></li><li><a href="/rest-ez/docs/reusing-specs/run-spec-in-js">Run Existing Spec</a></li></ul></li><li><a href="/rest-ez/docs/cli">Command Line Interface (CLI)</a><ul><li><a href="/rest-ez/docs/cli#debugging">Debugging</a></li><li><a href="/rest-ez/docs/cli#running-suites-parallel">Running Suites in Parallel</a></li><li><a href="/rest-ez/docs/cli#reporters">Reporters</a></li><li><a href="/rest-ez/docs/cli#options">Options</a></li></ul></li></ul><h2 id="acknowledgements" class="heading-0-0-2"><span class="anchor-0-0-3" data-ignore-text=""><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span>Acknowledgements</h2><p>👏👏👏 <strong>Enormous thanks to <a href="https://github.com/kiranz">Kiran Mandadi</a></strong>,</p><p>Original creator of <a href="https://kiranz.github.io/rest-ez/">rest-ez</a> upon which this project is based (forked).</p><p>👏👏👏 <strong>Thanks to corporate sponsors</strong></p><ul><li><a href="https://blossomfinance.com/">Blossom Finance</a> ethical investments in micro businesses</li><li><a href="https://www.launchgood.com/">LaunchGood</a> crowdfunding incredible Muslims</li></ul><h2 id="roadmap--todo" class="heading-0-0-2"><span class="anchor-0-0-3" data-ignore-text=""><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span>Roadmap & TODO</h2><ul><li>✅ <del>Full support for de-referencing schema $refs</del></li><li>✅ <del>Allow specifying node within a schema file using JSON pointer</del></li><li>✅ <del>Pass arguments to inline or module-based functions to allow creater re-use</del></li><li>✅ <del>Documentation improvements</del><ul><li>✅ <del>Upgrade markdown static site generator (something without python dependency)</del></li><li>✅ <del>Example function with arguments usage</del></li><li>✅ <del>JSON schema validation de-referencing schema $refs</del></li><li>✅ <del>Specify node within a schema file using JSON path</del></li><li>Examples directly using files within <em>node_modules</em></li></ul></li><li>Example of how to use faker.js using reusable function</li><li>Code Quality - add linter/hinter/prettier or whatever spec is used</li></ul><script id="qt_vdvvvEj">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("qt_vdvvvEj", "vZo3a95wH27oJJJ8+ixmQw==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="contentnav-0-0-11" data-no-search=""><a href="#overview" class="h2" data-content-highlight="overview">Overview</a><a href="#what-is-it" class="h3" data-content-highlight="what-is-it">What is it?</a><a href="#how-does-it-work" class="h3" data-content-highlight="how-does-it-work">How does it work?</a><a href="#documentation" class="h2" data-content-highlight="documentation">Documentation</a><a href="#acknowledgements" class="h2" data-content-highlight="acknowledgements">Acknowledgements</a><a href="#roadmap--todo" class="h2" data-content-highlight="roadmap--todo">Roadmap & TODO</a></div></div><div id="-codedoc-toc" class="toc-0-0-8"><div class="content-0-0-9"><p><a href="/rest-ez/">Home</a></p><div class="collapse-0-0-4 "><script id="xzHUw_cRSb">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("xzHUw_cRSb", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Getting Started</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/getting-started/installation">Installation</a>
<a href="/rest-ez/docs/getting-started/basic-usage">Basic Usage</a>
<a href="/rest-ez/docs/getting-started/graphql">GraphQL</a></p></div></div><div class="collapse-0-0-4 "><script id="JkfIcfrVzh">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("JkfIcfrVzh", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Basics</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/basics/overview">Overview</a>
<a href="/rest-ez/docs/basics/meta">Meta</a>
<a href="/rest-ez/docs/basics/config">Config</a>
<a href="/rest-ez/docs/basics/specs">Specs</a></p></div></div><div class="collapse-0-0-4 "><script id="awOIdhSbMg">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("awOIdhSbMg", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Request</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/request/request-basics">Request Basics</a>
<a href="/rest-ez/docs/request/headers">Headers</a>
<a href="/rest-ez/docs/request/cookies">Cookies</a>
<a href="/rest-ez/docs/request/query-parameters">Query Parameters</a>
<a href="/rest-ez/docs/request/path-parameters">Path Parameters</a></p><div class="collapse-0-0-4 "><script id="HcegRszdeD">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("HcegRszdeD", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Payload Body</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/request/payload-body/json-body">JSON Body</a>
<a href="/rest-ez/docs/request/payload-body/binary-data">Binary Data</a>
<a href="/rest-ez/docs/request/payload-body/url-encoded-form-data">URL Encoded Form Data</a>
<a href="/rest-ez/docs/request/payload-body/multi-part-form-data">Multi-Part Form Data</a></p></div></div><p><a href="/rest-ez/docs/request/file-uploads">File Uploads</a>
<a href="/rest-ez/docs/basics/specs#retry">Auto-Retry</a>
<a href="/rest-ez/docs/request/additional-options">Additional Options</a></p></div></div><div class="collapse-0-0-4 "><script id="ZpmPRQIXOd">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("ZpmPRQIXOd", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Response Validation</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/response-validation/overview">Overview</a></p><div class="collapse-0-0-4 "><script id="mDBIKvcgsX">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("mDBIKvcgsX", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Assertions</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/response-validation/overview#exact-value">Exact Value</a>
<a href="/rest-ez/docs/response-validation/overview#regular-expression">Regular Expression</a>
<a href="/rest-ez/docs/response-validation/overview#exact-value">Exact Value</a>
<a href="/rest-ez/docs/response-validation/overview#custom-validator">Custom JS Validator</a></p></div></div><p><a href="/rest-ez/docs/response-validation/status-code">Status Code</a>
<a href="/rest-ez/docs/response-validation/overview#general-assertions">Headers & Cookies</a></p><div class="collapse-0-0-4 "><script id="IiZpQEDG_X">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("IiZpQEDG_X", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Body</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/response-validation/body/overview">Overview</a>
<a href="/rest-ez/docs/response-validation/body/overview#exact-value">Exact Value</a>
<a href="/rest-ez/docs/response-validation/body/overview#regular-expression">Regular Expression</a>
<a href="/rest-ez/docs/response-validation/body/overview#json-path">JSON Path</a>
<a href="/rest-ez/docs/response-validation/body/json-schema-inline">JSON Schema Inline</a>
<a href="/rest-ez/docs/response-validation/body/json-schema-file">JSON Schema File</a>
<a href="/rest-ez/docs/response-validation/body/swagger-open-api">Swagger / Open API</a></p></div></div></div></div><div class="collapse-0-0-4 "><script id="VWjXVafhBH">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("VWjXVafhBH", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Hooks & JS</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/hooks/overview">Overview</a></p><div class="collapse-0-0-4 "><script id="tnOuzIThoQ">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("tnOuzIThoQ", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Function Types</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/hooks/types#js-synchronous-functions">JS Inline Functions</a>
<a href="/rest-ez/docs/hooks/types#js-async-functions">JS Async Inline Functions</a>
<a href="/rest-ez/docs/hooks/types#js-from-external-files">JS Modules</a></p></div></div><div class="collapse-0-0-4 "><script id="UPeexWXFFp">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("UPeexWXFFp", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Suite-Level Hooks</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/hooks/list#before_all">before_all</a>
<a href="/rest-ez/docs/hooks/list#after_all">after_all</a>
<a href="/rest-ez/docs/hooks/list#before_each">before_each</a>
<a href="/rest-ez/docs/hooks/list#after_each">after_each</a></p></div></div><div class="collapse-0-0-4 "><script id="OdFtofytcC">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("OdFtofytcC", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Spec-Level Hooks</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/hooks/list#before_test">before_test</a>
<a href="/rest-ez/docs/hooks/types#after_test">after_test</a></p></div></div><div class="collapse-0-0-4 "><script id="ilcdRGaksn">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("ilcdRGaksn", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Context</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/hooks/context#suite">Suite Context</a>
<a href="/rest-ez/docs/hooks/context#test">Test Context</a>
<a href="/rest-ez/docs/hooks/context#response">Response Context</a></p></div></div></div></div><div class="collapse-0-0-4 "><script id="uFkuegNOlA">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("uFkuegNOlA", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">DRY & Reusing Specs</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/reusing-specs/overview">Overview</a>
<a href="/rest-ez/docs/reusing-specs/looping">Looping</a>
<a href="/rest-ez/docs/reusing-specs/yaml-anchors">Yaml Anchors</a>
<a href="/rest-ez/docs/reusing-specs/run-spec-in-js">Run Existing Spec</a></p></div></div><div class="collapse-0-0-4 "><script id="zIbvigmZHb">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("zIbvigmZHb", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Command Line Interface (CLI)</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/cli/basics#command-line-interface-cli">Basics</a>
<a href="/rest-ez/docs/cli/basics#debugging">Debugging</a>
<a href="/rest-ez/docs/cli/basics#running-suites-in-parallel">Running in Parallel</a>
<a href="/rest-ez/docs/cli/options">Options</a>
<a href="/rest-ez/docs/cli/reporters">Reporters</a></p></div></div></div><div class="search-0-0-10"><script id="cuELFFyIOd">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("cuELFFyIOd", "YyttjbRX11tYgT3iwZJrBQ==", {"repo":"rest-ez","user":"blossomfinance","root":"docs/md","pick":"\\.md$","drop":"(^_)|(\\/_)"});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script></div></div><div class="footer-0-0-7"><div class="left"><script id="AitlJONcuZ">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("AitlJONcuZ", "8iYm5KC+ozzQAZso6kr3tQ==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script></div><div class="main"><div class="inside"><a href="https://github.com/blossomfinance/rest-ez/" target="_blank">GitHub</a></div></div><div class="right"><script id="jGiZuqBFCF">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("jGiZuqBFCF", "VuteVElYSJBdX52ZFnVrYA==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script></div></div><script id="AIhhrfrdsq">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("AIhhrfrdsq", "HmAKFyAd8r6xjvdVYefaKw==", {"namespace":"/rest-ez"});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script></body></html>