<%- _.import('Ensure, equals', '@serenity-js/assertions' ) %><%- _.import('Task', '@serenity-js/core' ) %><%- _.import('GetRequest, LastResponse, Send', '@serenity-js/rest' ) %>/*** Learn more about API testing with Serenity/JS* https://serenity-js.org/handbook/api-testing/*/<%- _.export('class', 'GitHubStatus') %> {static #baseApiUrl = 'https://www.githubstatus.com/api/v2/'static #statusJson = this.#baseApiUrl + 'status.json'static ensureAllSystemsOperational = () =>Task.where(`#actor ensures all GitHub systems are operational`,Send.a(GetRequest.to(this.#statusJson)),Ensure.that(LastResponse.status(), equals(200)),Ensure.that(LastResponse.body<%- _.ifTs('<StatusResponse>') %>().status.description.describedAs('GitHub Status'),equals('All Systems Operational')),)}<% if (_.useTypeScript) { %>/*** Interfaces describing a simplified response structure returned by the GitHub Status Summary API:* https://www.githubstatus.com/api/v2/summary.json*/interface StatusResponse {page: {id: stringname: stringurl: stringtime_zone: stringupdated_at: string}status: {indicator: stringdescription: string}}<% } %>