Commit 46bee87

mo khan <mo@mokhan.ca>
2013-11-06 04:07:19
complete fizzbuzz.
1 parent d3d6df3
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": "*"
   }
 }