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 levrun
HTML
<script src="https://cdn.jsdelivr.net/jasmine/2.5.2/jasmine.js"></script>
<script src="https://cdn.jsdelivr.net/jasmine/2.5.2/jasmine-html.js"></script>
<script src="https://cdn.jsdelivr.net/jasmine/2.5.2/boot.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/jasmine/2.5.2/jasmine.css">
<title>String calculator with TypeScript and Jasmine</title>
TypeScript
class StringCalculator {
constructor() {
}
add(input: String) {
if(input == null || input == "") {
return 0;
}
console.log("Input string is " + input);
var separator: string = ",";
console.log("substring " + input.substring(0, 2));
if (input.substring(0, 2) == "//") {
console.log("Separator setup case ");
separator = input.substring(2, 3);
input = input.substring(4, input.length);
}
console.log("Separator is " + separator);
input = input.replace(/\n/g, separator);
var array[] = input.split(separator);
var errors[]:int[] = [];
var summ: int = 0;
for(let numberStr of array) {
var num: int = parseInt(numberStr);
if(num < 0) {
errors.push(num);
}
summ = summ + num;
}
if(errors.length > 0) {
var negatives:string = "";
console.log(errors);
for (var item in errors) {
negatives = negatives + errors[item].toString() + " ";
console.log(item);
}
console.log("Input string contains negative " + negatives);
throw new Error("Input string contains negative " + negatives);
}
return summ;
}
}
describe("String calculator suite", function() {
it("Test that empty string return zero", function(done) {
StringCalculator calculator = new StringCalculator();
expect(calculator.add("")).toBe(0);
setTimeout(done, 1000);
});
it("Test that one number return the same number", function(done) {
StringCalculator calculator = new StringCalculator();
expect(calculator.add("1")).toBe(1);
setTimeout(done, 1000);
});
it("Test that two numbers return their summ", function(done) {
StringCalculator calculator = new StringCalculator();
expect(calculator.add("1,2")).toBe(3);
...