Vows = require("vows")
assert = require("assert")
Babel = require("../src/babel")
Path = require("path")

ScriptTest = (file) ->
	
	topic: ->
		
		Babel.script file, (err, script) =>
			results = context: { context: false }, locals: { local: false }
			results.returned = script.call(results.context, results.locals)
			@callback err, results
		
	"can access a context": (err, results) ->	
		throw err if err
		assert.isTrue(results.context.context)
	
	"can access locals": (err, results) ->
		throw err if err
		assert.isTrue(results.locals.local)
	
	"can return a value": (err, results) ->
		throw err if err
		assert.isTrue(results.returned)

Vows.describe("The Script Loader").addBatch(

	"A loaded .js script": ScriptTest(
		Path.join(__dirname, "fixtures/script/test.js")
	)
	
	"A loaded .coffee script": ScriptTest(
		Path.join(__dirname, "fixtures/script/test.coffee")
	)
	
	"A loaded wildcard script": ScriptTest(
		Path.join(__dirname, "fixtures/script/test.*")
	)

).export(module)