Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
Before(function () {
return this.stage.theActorCalled('Apisitt').attemptsTo( // todo: change to Maggie
StartLocalServer.onRandomPort(),
ChangeApiUrl.to(LocalServer.url()),
// TakeNote.of(LocalServer.url()) // Question or Question; Pass between actors
);
});
Before(function () {
return this.stage.theActorCalled('Apisitt').attemptsTo( // todo: change to Maggie
StartLocalServer.onRandomPort(),
ChangeApiUrl.to(LocalServer.url()),
// TakeNote.of(LocalServer.url()) // Question or Question; Pass between actors
);
});
describe('over HTTP', () => {
// Fun fact: Before Cookie Monster ate his first cookie, he believed his name was Sid. You're welcome.
const Sid = Actor.named('Sid').whoCan(
BrowseTheWeb.using(protractor.browser),
ManageALocalServer.runningAHttpListener(cookieCutterApp),
);
beforeEach(() => Sid.attemptsTo(StartLocalServer.onRandomPort()));
afterEach(() => Sid.attemptsTo(StopLocalServer.ifRunning()));
afterEach(() => Sid.attemptsTo(DeleteCookies.all()));
describe('when working with the value', () => {
/** @test {Cookie} */
/** @test {Cookie#valueOf} */
it('allows the actor to retrieve it', () => Sid.attemptsTo(
Navigate.to(cookieCutterURLFor('/cookie?name=favourite&value=chocolate-chip')),
Ensure.that(Cookie.valueOf('favourite'), equals('chocolate-chip')),
));
/** @test {Cookie} */
After(function () {
return this.stage.theActorCalled('Apisitt').attemptsTo(
StopLocalServer.ifRunning(),
);
});
prepare(actor: Actor): Actor {
return actor.whoCan(
ManageALocalServer.runningAHttpListener(requestHandler),
CallAnApi.at('http://localhost'),
);
}
}
describe('when working with secure cookies', () => {
const Sid = Actor.named('Secure Sid').whoCan(
BrowseTheWeb.using(protractor.browser),
ManageALocalServer.runningAHttpsListener(cookieCutterApp, {
cert: certificates.cert,
key: certificates.key,
requestCert: true,
rejectUnauthorized: false,
}),
);
beforeEach(() => Sid.attemptsTo(StartLocalServer.onRandomPort()));
afterEach(() => Sid.attemptsTo(StopLocalServer.ifRunning()));
afterEach(() => Sid.attemptsTo(DeleteCookies.all()));
/** @test {Cookie} */
/** @test {Cookie#isSecure} */
it('allows the actor to confirm that a cookie is not secure', () => Sid.attemptsTo(
Navigate.to(cookieCutterURLFor('/cookie?name=favourite&value=chocolate-chip')),
Ensure.that(Cookie.isSecure('favourite'), equals(false)),
When(/^(.*) navigates to the test website$/, function(this: WithStage, actorName: string) {
return this.stage.actor(actorName).attemptsTo(
StartLocalServer.onRandomPort(),
UseAngular.disableSynchronisation(),
Navigate.to(LocalServer.url()),
);
});
function cookieCutterURLFor(path: string): Question> {
return Transform.the(LocalServer.url(), url => `${ url }${ path }`);
}
beforeEach(() => Sid.attemptsTo(StartLocalServer.onRandomPort()));
afterEach(() => Sid.attemptsTo(StopLocalServer.ifRunning()));
When(/^(.*) navigates to the test website$/, function(this: WithStage, actorName: string) {
return this.stage.actor(actorName).attemptsTo(
StartLocalServer.onRandomPort(),
UseAngular.disableSynchronisation(),
Navigate.to(LocalServer.url()),
);
});