[
    {
        "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": 165021651
                        }
                    },
                    {
                        "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": 7030615
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 201",
                        "line": 7,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 321797
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should contain a field \"run_id\"",
                        "line": 8,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 337424
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should contain a field \"phase\"",
                        "line": 9,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 352022
                        }
                    }
                ]
            },
            {
                "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": 159256652
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "a run exists",
                        "line": 13,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 1051912
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs/{run_id}",
                        "line": 14,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 6545904
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 15,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 306312
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should contain the run status",
                        "line": 16,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 194863
                        }
                    }
                ]
            },
            {
                "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": 172753620
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 401",
                        "line": 20,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 642993
                        }
                    }
                ]
            },
            {
                "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": 152163074
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I POST /api/v1/runs with empty manifest",
                        "line": 24,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 435556
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 422",
                        "line": 25,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 158487
                        }
                    }
                ]
            },
            {
                "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": 212392624
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs/99999999-9999-9999-9999-999999999999",
                        "line": 29,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 6893559
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 404",
                        "line": 30,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 366076
                        }
                    }
                ]
            },
            {
                "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": 213178947
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 34,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 305939
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs",
                        "line": 35,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 15524980
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 36,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 259553
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 37,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 196332
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.limit\" equal to 50",
                        "line": 38,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 258841
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.offset\" equal to 0",
                        "line": 39,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 162644
                        }
                    }
                ]
            },
            {
                "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": 167059892
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 43,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 288913
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?limit=2\u0026offset=1",
                        "line": 44,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 6575670
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 45,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 248492
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 46,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 292233
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.limit\" equal to 2",
                        "line": 47,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 947807
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.offset\" equal to 1",
                        "line": 48,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 1013291
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.returned\" field",
                        "line": 49,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 347737
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"meta.has_more\" field",
                        "line": 50,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 211877
                        }
                    }
                ]
            },
            {
                "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": 177225034
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 54,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 400340
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?phase=pending",
                        "line": 55,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 13194919
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 56,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 1011053
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 57,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 291334
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "all returned runs should have phase \"pending\"",
                        "line": 58,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 216539
                        }
                    }
                ]
            },
            {
                "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": 173104839
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 62,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 313128
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?phase=pending,running",
                        "line": 63,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 7205285
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 64,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 303775
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 65,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 309287
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "all returned runs should have phase \"pending\" or \"running\"",
                        "line": 66,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 238550
                        }
                    }
                ]
            },
            {
                "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": 185800993
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 70,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 323910
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?manifest=doc-quality",
                        "line": 71,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 10759610
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 72,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 304377
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 73,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 340827
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "all returned runs should have manifest \"doc-quality\"",
                        "line": 74,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 254920
                        }
                    }
                ]
            },
            {
                "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": 196043726
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 78,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 243509
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?source=cli",
                        "line": 79,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 9460759
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 80,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 464926
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 81,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 419810
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "all returned runs should have source \"cli\"",
                        "line": 82,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 403250
                        }
                    }
                ]
            },
            {
                "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": 170419605
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 86,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 322782
                        }
                    },
                    {
                        "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": 6883555
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 88,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 321098
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 89,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 282312
                        }
                    }
                ]
            },
            {
                "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": 178868579
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 93,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 371838
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?limit=5",
                        "line": 94,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 7267895
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 95,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 314187
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 96,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 412452
                        }
                    },
                    {
                        "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": 298046
                        }
                    }
                ]
            },
            {
                "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": 195137164
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 101,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 298225
                        }
                    },
                    {
                        "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": 9741897
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 103,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 424454
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 104,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 350747
                        }
                    },
                    {
                        "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": 407129
                        }
                    }
                ]
            },
            {
                "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": 209772087
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "there are 3 seed runs in the database",
                        "line": 109,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 210387
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I GET /api/v1/runs?limit=2",
                        "line": 110,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 5328480
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 111,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 283048
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have \"links.next\" field",
                        "line": 112,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 256459
                        }
                    },
                    {
                        "keyword": "When ",
                        "name": "I follow the cursor from \"links.next\"",
                        "line": 113,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 3188065
                        }
                    },
                    {
                        "keyword": "Then ",
                        "name": "the response status should be 200",
                        "line": 114,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 180601
                        }
                    },
                    {
                        "keyword": "And ",
                        "name": "the response should have a \"data\" array",
                        "line": 115,
                        "match": {
                            "location": "\u003cautogenerated\u003e:1"
                        },
                        "result": {
                            "status": "passed",
                            "duration": 259128
                        }
                    },
                    {
                        "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": 274706
                        }
                    }
                ]
            }
        ]
    }
]
