jasmine test running on jsFiddle
jsFiddle template to run a jasmine test inside jsFiddle. Adds jasmine external resources, and initializes jasmine's HtmlReporter on window load. For more infor check this article: http://opensas.wordpress.com/2013/06/23/sharing-you-javascript-ninja-secrets-run-your-jasmine-tests-on-jsfiddle/
by dcardoso
HTML
<link rel="stylesheet" href="//cdn.jsdelivr.net/jasmine/1.3.1/jasmine.css">
<script src="//cdn.jsdelivr.net/jasmine/1.3.1/jasmine.js"></script>
<script src="//cdn.jsdelivr.net/jasmine/1.3.1/jasmine-html.js"></script>
<title>Jasmine Spec Runner</title>
JavaScript
const sortResults = events => ({
...events,
result: events.result.split('-').map(Number)
})
const totalGoals = (prev, curr) => prev + curr
const findMoreGoals = (prev, curr) =>
curr.result.reduce(totalGoals) > prev.result.reduce(totalGoals) ? curr : prev
const diffWin = result => Math.max(...result) - Math.min(...result)
const findBiggestWin = (prev, curr) => {
return diffWin(curr.result) > diffWin(prev.result) ? curr : prev
}
const output = event => ({
...event,
result: event.result.join('-')
})
function findEvents(events) {
if (events.length === 0) return {
moreGoals: undefined,
biggestWin: undefined
}
const moreGoals = output(
events
.map(sortResults)
.reduce(findMoreGoals)
)
const biggestWin = output(
events
.map(sortResults)
.reduce(findBiggestWin)
)
return {
moreGoals,
biggestWin,
}
}
describe("Find events", function () {
describe("with no events", () => {
let events;
beforeEach(() => {
events = [];
});
it("should not return moreGoals", () => {
const result = findEvents(events);
expect(result.moreGoals).toEqual(undefined);
});
it("should not return biggestWin", () => {
const result = findEvents(events);
expect(result.biggestWin).toEqual(undefined);
});
});
describe("with two events", () => {
let events;
beforeEach(() => {
events = [
{ name: "A vs B", result: "1-0" },
{ name: "A vs C", result: "1-1" },
];
});
it("should return moreGoals", () => {
const result = findEvents(events);
expect(result.moreGoals).toEqual({ name: "A vs C", result: "1-1" });
});
it("should return biggestWin", () => {
const result = findEvents(events);
expect(result.biggestWin).toEqual({ name: "A vs B", result: "1-0" });
});
});
describe("with multiple events", () => {
let events;
beforeEach(() => {
events = [
{ name: "A vs B",...