Builder = require("../src/builder")
builder = new Builder()

it "should perform simple inclusion", ->
  src = builder.build("test/builder/include/receiver_simple.js")
  src.should.equal(';console.log("OK!");;')

it "should perform inclusion and compilation", ->
  src = builder.build("test/builder/include/receiver_compile.js")
  src.should.equal("console.log(\"OK!\");\n")

it "should perform inclusion twice with include", ->
  src = builder.build("test/builder/include/twice.js")
  src.should.equal(";console.log(\"OK!\");;;console.log(\"OK!\");;\n")

it "should perform inclusion once with require", ->
  src = builder.build("test/builder/include/once.js")
  src.should.equal(";console.log(\"OK!\");;\n")

it "should perform inclusion once with require and a tree of deps", ->
  src = builder.build("test/builder/include/requireTree.js")
  src.should.equal(";;console.log(\"OK!\");;\n;\n\n")

it "should throw an error if encounters an unknown file type", ->
  (->
    builder.build("test/builder/invalid/invalid.unknownType")
  ).should.throw(/^Unknown source type for/)

it "should let configure after initalize", ->
  builder.config    
    types:
      markdown:
        delimiters: ["<!--", "-->"]
        extensions: ['.md']

  builder.types.byName("markdown").name.should.equal("markdown")
    