Commit 46bee87
Changed files (4)
lib/fizz_buzz.js
@@ -0,0 +1,23 @@
+// Generated by CoffeeScript 1.6.3
+var FizzBuzz;
+
+FizzBuzz = (function() {
+ function FizzBuzz() {}
+
+ FizzBuzz.prototype.run = function(n) {
+ var result;
+ result = "";
+ if (n % 3 === 0) {
+ result += "Fizz";
+ }
+ if (n % 5 === 0) {
+ result += "Buzz";
+ }
+ return result;
+ };
+
+ return FizzBuzz;
+
+})();
+
+module.exports.FizzBuzz = FizzBuzz;
src/fizz_buzz.coffee
@@ -0,0 +1,9 @@
+class FizzBuzz
+ run: (n) ->
+ result = ""
+ result += "Fizz" if n % 3 == 0
+ result += "Buzz" if n % 5 == 0
+ result
+
+module.exports.FizzBuzz = FizzBuzz
+
test/fizz_buzz_spec.coffee
@@ -0,0 +1,24 @@
+assert = require('assert')
+should = require('chai').should()
+FizzBuzz = require('../src/fizz_buzz').FizzBuzz
+
+describe "FizzBuzz", ->
+
+ beforeEach ->
+ @sut = new FizzBuzz
+
+ describe "when given a number that is evenly divisible by 3", ->
+ it "returns Fizz", ->
+ @sut.run(3).should.equal("Fizz")
+
+ describe "when given a number that is evenly divisible by 5", ->
+ it "returns Buzz", ->
+ @sut.run(5).should.equal("Buzz")
+
+ describe "when given a number that is evenly divisible by 3 and 5", ->
+ it "returns FizzBuzz", ->
+ @sut.run(15).should.equal("FizzBuzz")
+
+ describe "when given a number that is not evenly divisible by 3 or 5", ->
+ it "returns nothing", ->
+ @sut.run(16).should.equal("")
package.json
@@ -3,6 +3,7 @@
"version": "0.0.1",
"devDependencies": {
"coffee-script": "*",
- "mocha": "*"
+ "mocha": "*",
+ "chai": "*"
}
}