[
    {
        "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": 267794535
                        }
                    },
                    {
                        "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": 8621009
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 201",
                        "line": 7,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 257888
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should contain a field \"run_id\"",
                        "line": 8,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 208115
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should contain a field \"phase\"",
                        "line": 9,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 406386
                        }
                    }
                ]
            },
            {
                "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": 228860809
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "a run exists",
                        "line": 13,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 227314
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs/{run_id}",
                        "line": 14,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 6367944
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 15,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 186507
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should contain the run status",
                        "line": 16,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 166260
                        }
                    }
                ]
            },
            {
                "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": 183100241
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 401",
                        "line": 20,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 341196
                        }
                    }
                ]
            },
            {
                "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": 181157221
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I POST /api/v1/runs with empty manifest",
                        "line": 24,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 731459
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 422",
                        "line": 25,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 256182
                        }
                    }
                ]
            },
            {
                "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": 194856350
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs/99999999-9999-9999-9999-999999999999",
                        "line": 29,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 4813530
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 404",
                        "line": 30,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 167910
                        }
                    }
                ]
            },
            {
                "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": 187126313
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 34,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 354716
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs",
                        "line": 35,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 10530840
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 36,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 183123
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 37,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 235558
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.limit\" equal to 50",
                        "line": 38,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 208435
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.offset\" equal to 0",
                        "line": 39,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 175945
                        }
                    }
                ]
            },
            {
                "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": 189021440
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 43,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 341475
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?limit=2\u0026offset=1",
                        "line": 44,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 4506727
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 45,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 136243
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 46,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 368308
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.limit\" equal to 2",
                        "line": 47,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 226398
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.offset\" equal to 1",
                        "line": 48,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 269569
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.returned\" field",
                        "line": 49,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 334923
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.has_more\" field",
                        "line": 50,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 321659
                        }
                    }
                ]
            },
            {
                "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": 239194205
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 54,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 170206
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?phase=pending",
                        "line": 55,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 14015100
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 56,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 276472
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 57,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 171697
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "all returned runs should have phase \"pending\"",
                        "line": 58,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 297541
                        }
                    }
                ]
            },
            {
                "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": 165848116
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 62,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 207878
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?phase=pending,running",
                        "line": 63,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 5550199
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 64,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 165710
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 65,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 364017
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "all returned runs should have phase \"pending\" or \"running\"",
                        "line": 66,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 216730
                        }
                    }
                ]
            },
            {
                "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": 462523504
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 70,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 267467
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?manifest=doc-quality",
                        "line": 71,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 5726905
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 72,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 126120
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 73,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 295764
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "all returned runs should have manifest \"doc-quality\"",
                        "line": 74,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 222725
                        }
                    }
                ]
            },
            {
                "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": 143803177
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 78,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 346750
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?source=cli",
                        "line": 79,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 6789785
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 80,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 166037
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 81,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 272506
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "all returned runs should have source \"cli\"",
                        "line": 82,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 346721
                        }
                    }
                ]
            },
            {
                "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": 158171991
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 86,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 432032
                        }
                    },
                    {
                        "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": 6531871
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 88,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 380726
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 89,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 297105
                        }
                    }
                ]
            },
            {
                "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": 256005260
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 93,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 251709
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?limit=5",
                        "line": 94,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 5536109
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 95,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 290553
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 96,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 312599
                        }
                    },
                    {
                        "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": 311596
                        }
                    }
                ]
            },
            {
                "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": 380170067
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 101,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 247698
                        }
                    },
                    {
                        "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": 6820883
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 103,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 307141
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 104,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 365526
                        }
                    },
                    {
                        "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": 194724
                        }
                    }
                ]
            },
            {
                "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": 481733782
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 109,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 237499
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?limit=2",
                        "line": 110,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 6331391
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 111,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 302410
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"links.next\" field",
                        "line": 112,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 372777
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I follow the cursor from \"links.next\"",
                        "line": 113,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 5267491
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 114,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 264655
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 115,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 250741
                        }
                    },
                    {
                        "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": 333675
                        }
                    }
                ]
            }
        ]
    }
]
