Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export const VerifyResultAt = (url: Answerable, expectation: Expectation>) =>
Task.where(`#actor verifies result at ${ url }`,
Send.a(GetRequest.to(url)),
Ensure.that(LastResponse.status(), equals(200)),
Ensure.that(LastResponse.body(), expectation),
);
export const RequestCalculationOf = (expression: string) =>
Task.where(`#actor requests calculation of ${ expression }`,
Send.a(
PostRequest.to('/api/calculations').with(expression).using({ headers: { 'Content-Type': 'text/plain' }}),
),
Ensure.that(LastResponse.status(), equals(201)),
Ensure.that(LastResponse.header('location'), startsWith('/api/calculations/')),
);
describe('when working with HTTPS', () => {
const testHttpsServer = [
StartLocalServer.onOneOfThePreferredPorts([ 8443, 9443 ]),
Ensure.that(LocalServer.url(), startsWith('https://127.0.0.1')),
Send.a(GetRequest.to(LocalServer.url())),
Ensure.that(LastResponse.status(), equals(200)),
Ensure.that(LastResponse.body(), equals('Hello World!')),
];
given(
require('./servers/barebones'),
require('./servers/express'),
require('./servers/koa'),
).
it('allows the Actor to start, stop and access the location of a HTTPS', function ({ handler, node }) {
if (! satisfies(process.versions.node, node)) {
return this.skip();
}
class Actors implements DressingRoom {
prepare(actor: Actor): Actor {
return actor.whoCan(
it('correctly reports actor\'s activities', () => expect(theStage.theActorCalled('Nadia').attemptsTo(
StartLocalServer.onRandomPort(),
Ensure.that(LocalServer.url(), startsWith('http://127.0.0.1')),
Send.a(GetRequest.to(LocalServer.url())),
Ensure.that(LastResponse.status(), equals(200)),
Ensure.that(LastResponse.body(), equals('Hello World!')),
StopLocalServer.ifRunning(),
)).to.be.fulfilled.then(() => {
const events = (theStage.announce as sinon.SinonSpy).getCalls().map(call => call.lastArg);
PickEvent.from(events)
.next(ActivityStarts, hasName(`Nadia starts the local server`))
.next(ActivityFinished, hasName(`Nadia starts the local server`))
.next(ActivityFinished, hasName(`Nadia ensures that the URL of the local server does start with 'http://127.0.0.1'`))
.next(ActivityFinished, hasName(`Nadia sends a GET request to the URL of the local server`))
.next(ActivityFinished, hasName(`Nadia ensures that the status of the last response does equal 200`))
.next(ActivityFinished, hasName(`Nadia ensures that the body of the last response does equal 'Hello World!'`))
.next(ActivityStarts, hasName(`Nadia stops the local server`))
.next(ActivityFinished, hasName(`Nadia stops the local server`))
;