giles
Version:
a next-gen language watcher/compiler for pre-processed languages
160 lines (140 loc) • 5.13 kB
JavaScript
// Generated by CoffeeScript 1.6.2
(function() {
var fs, giles, path;
giles = require('../giles');
fs = require('fs');
path = require('path');
describe('building', function() {
return it('should build an individual file', function() {
var contents;
giles.compile(__dirname + '/test.test-giles-compiler');
contents = fs.readFileSync(__dirname + '/test.test-giles-compiler-out', 'utf8');
return contents.length.should.equal(5);
});
});
describe('connect', function() {
var req, res;
req = null;
res = null;
before(function() {
giles.addCompiler('.test-connect', '.test-connect-out', function(contents, filename, options, output) {
return output("spec response");
});
req = {
url: "/test.test-connect-out"
};
res = {
setHeader: function(a, b) {
return this.headers[a] = b;
},
getHeader: function(a) {
return this.headers[a];
},
end: function(content) {
return this.content = content;
}
};
return res.headers = {};
});
it('should send result', function() {
var connect, next;
connect = giles.connect(__dirname);
next = function() {
return "should not call next".should.eql("");
};
return connect(req, res, next);
});
it('should output 500 error', function() {});
it('should call next on 404', function() {
var connect, next;
next = function() {
return done();
};
connect = giles.connect(__dirname);
return connect(req, res, next);
});
it('should ignore url params', function() {
var connect, next, url;
url = "/test.test-connect-out?b";
req.url = url;
next = function() {
return done();
};
connect = giles.connect(__dirname);
return connect(req, res, next);
});
it('should return css mime type', function() {
var connect, next;
connect = giles.connect(__dirname);
next = null;
req.url = "/test-content-type.css";
connect(req, res, next);
return res.getHeader("Content-Type").should.eql("text/css");
});
it('should return html mime type', function() {
var connect, next;
connect = giles.connect(__dirname);
next = null;
req.url = "/test-content-type.html";
connect(req, res, next);
return res.getHeader("Content-Type").should.eql("text/html");
});
return it('should return js mime type', function() {
var connect, next;
connect = giles.connect(__dirname);
next = null;
req.url = "/test-content-type.js";
connect(req, res, next);
return res.getHeader("Content-Type").should.eql("application/javascript");
});
});
describe('giles', function() {
return it('should get extensions', function() {
var name;
name = giles.parseFileName('test.test');
name.should.eql(['test', '.test']);
giles.parseFileName('test').should.eql(['test', '']);
giles.parseFileName('.test').should.eql(['.test', '']);
giles.parseFileName('file.min.css').should.eql(['file.min', '.css']);
giles.parseFileName('file.really.long-whatever-name.out').should.eql(['file.really.long-whatever-name', '.out']);
return giles.addCompiler('.test-giles-compiler', '.test-giles-compiler-out', function(contents, filename, options, output) {
return output(contents.substr(0, 5));
});
});
});
describe('locals', function() {
var meta;
meta = null;
before(function() {
giles.addCompiler('.test-meta-data', '.test-meta-data-out', function(contents, filename, options, output) {
return output("");
});
giles.get('test2', 'test.test-meta-data', {});
return giles.compile(__dirname + '/test.test-meta-data');
});
it('should have environment meta data', function(done) {
return done();
});
return it('should have route meta data', function(done) {
return done();
});
});
describe('new compiler', function() {
return it('should compile correctly', function() {
giles.compileFile(__dirname + '/test.test-giles-compiler', {}, {}, function(result) {
result.content.should.equal(result.originalContent.substr(0, 5));
result.outputFile.indexOf('test.test-giles-compiler-out').should.not.eql(-1);
return result.inputFile.indexOf('test.test-giles-compiler').should.not.eql(-1);
});
giles.addCompiler(['.test-giles-compiler', '.test-giles-compiler2'], '.test-giles-compiler-out', function(contents, filename, options, output) {
return output(contents.substr(0, 6));
});
giles.compileFile(__dirname + '/test.test-giles-compiler', {}, {}, function(result) {
return result.content.should.equal(result.originalContent.substr(0, 6));
});
return giles.addCompiler('.test-giles-compiler', '.test-giles-compiler-out', function(contents, filename, options, output) {
return output(contents.substr(0, 5));
});
});
});
}).call(this);