[
    {
        "uri": "features/runs.feature",
        "id": "pipeline-runs",
        "keyword": "Feature",
        "name": "Pipeline runs",
        "description": "  API for creating and polling pipeline runs.",
        "line": 1,
        "elements": [
            {
                "id": "pipeline-runs;create-a-run-successfully",
                "keyword": "Scenario",
                "name": "Create a run successfully",
                "description": "",
                "line": 4,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 5,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 163525845
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I POST /api/v1/runs with manifest \"doc-quality\" and source \"cli\"",
                        "line": 6,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 6536255
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 201",
                        "line": 7,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 154252
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should contain a field \"run_id\"",
                        "line": 8,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 121544
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should contain a field \"phase\"",
                        "line": 9,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 116041
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;poll-a-run-status",
                "keyword": "Scenario",
                "name": "Poll a run status",
                "description": "",
                "line": 11,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 12,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 125261715
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "a run exists",
                        "line": 13,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 357955
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs/{run_id}",
                        "line": 14,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 6744236
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 15,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 256104
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should contain the run status",
                        "line": 16,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 216242
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;reject-unauthenticated-request",
                "keyword": "Scenario",
                "name": "Reject unauthenticated request",
                "description": "",
                "line": 18,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "When ",
                        "name": "I POST /api/v1/runs with no API token",
                        "line": 19,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 136714936
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 401",
                        "line": 20,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 267479
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;reject-invalid-manifest",
                "keyword": "Scenario",
                "name": "Reject invalid manifest",
                "description": "",
                "line": 22,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 23,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 122596065
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I POST /api/v1/runs with empty manifest",
                        "line": 24,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 539223
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 422",
                        "line": 25,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 223728
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;return-404-for-unknown-run",
                "keyword": "Scenario",
                "name": "Return 404 for unknown run",
                "description": "",
                "line": 27,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 28,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 133482719
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs/99999999-9999-9999-9999-999999999999",
                        "line": 29,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 5220842
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 404",
                        "line": 30,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 250733
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;list-runs-with-default-pagination",
                "keyword": "Scenario",
                "name": "List runs with default pagination",
                "description": "",
                "line": 32,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 33,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 130737699
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 34,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 291317
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs",
                        "line": 35,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 11085961
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 36,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 304488
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 37,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 345065
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.limit\" equal to 50",
                        "line": 38,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 332767
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.offset\" equal to 0",
                        "line": 39,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 245353
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;list-runs-with-custom-limit-and-offset",
                "keyword": "Scenario",
                "name": "List runs with custom limit and offset",
                "description": "",
                "line": 41,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 42,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 136493103
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 43,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 241502
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?limit=2\u0026offset=1",
                        "line": 44,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 6672845
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 45,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 326428
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 46,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 248895
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.limit\" equal to 2",
                        "line": 47,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 236653
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.offset\" equal to 1",
                        "line": 48,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 154533
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.returned\" field",
                        "line": 49,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 237593
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.has_more\" field",
                        "line": 50,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 269431
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;filter-runs-by-phase",
                "keyword": "Scenario",
                "name": "Filter runs by phase",
                "description": "",
                "line": 52,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 53,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 123809739
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 54,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 208481
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?phase=pending",
                        "line": 55,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 8317606
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 56,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 211334
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 57,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 225006
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "all returned runs should have phase \"pending\"",
                        "line": 58,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 207983
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;filter-runs-by-multiple-phases",
                "keyword": "Scenario",
                "name": "Filter runs by multiple phases",
                "description": "",
                "line": 60,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 61,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 124421184
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 62,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 232529
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?phase=pending,running",
                        "line": 63,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 4470039
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 64,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 159753
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 65,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 219334
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "all returned runs should have phase \"pending\" or \"running\"",
                        "line": 66,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 193228
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;filter-runs-by-manifest",
                "keyword": "Scenario",
                "name": "Filter runs by manifest",
                "description": "",
                "line": 68,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 69,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 117481961
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 70,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 215536
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?manifest=doc-quality",
                        "line": 71,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 6842945
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 72,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 231439
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 73,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 202724
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "all returned runs should have manifest \"doc-quality\"",
                        "line": 74,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 189945
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;filter-runs-by-source",
                "keyword": "Scenario",
                "name": "Filter runs by source",
                "description": "",
                "line": 76,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 77,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 120688073
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 78,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 293652
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?source=cli",
                        "line": 79,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 4769187
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 80,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 190634
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 81,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 280823
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "all returned runs should have source \"cli\"",
                        "line": 82,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 308710
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;filter-runs-by-multiple-criteria",
                "keyword": "Scenario",
                "name": "Filter runs by multiple criteria",
                "description": "",
                "line": 84,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 85,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 128663720
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 86,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 321794
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?phase=pending\u0026manifest=doc-quality\u0026source=cli",
                        "line": 87,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 5163455
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 88,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 168764
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 89,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 184138
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;sort-runs-by-created_at-descending-(default)",
                "keyword": "Scenario",
                "name": "Sort runs by created_at descending (default)",
                "description": "",
                "line": 91,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 92,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 121907713
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 93,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 252839
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?limit=5",
                        "line": 94,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 5990537
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 95,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 626296
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 96,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 378247
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the runs should be sorted by \"created_at\" in descending order",
                        "line": 97,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 436793
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;sort-runs-by-updated_at-ascending",
                "keyword": "Scenario",
                "name": "Sort runs by updated_at ascending",
                "description": "",
                "line": 99,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 100,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 125082796
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 101,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 367178
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?sort=updated_at\u0026order=asc\u0026limit=5",
                        "line": 102,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 4961627
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 103,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 267711
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 104,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 249006
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the runs should be sorted by \"updated_at\" in ascending order",
                        "line": 105,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 274822
                        }
                    }
                ]
            },
            {
                "id": "pipeline-runs;navigate-using-cursor-pagination",
                "keyword": "Scenario",
                "name": "Navigate using cursor pagination",
                "description": "",
                "line": 107,
                "type": "scenario",
                "steps": [
                    {
                        "keyword": "Given ",
                        "name": "a valid API token \"test-token-001\"",
                        "line": 108,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 130353106
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 109,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 314043
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?limit=2",
                        "line": 110,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 6025497
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 111,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 206789
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"links.next\" field",
                        "line": 112,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 268533
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I follow the cursor from \"links.next\"",
                        "line": 113,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 3586430
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 114,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 203267
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 115,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 149013
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the returned runs should not include any from the previous page",
                        "line": 116,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 207632
                        }
                    }
                ]
            }
        ]
    }
]
