def test_nodejs_compile_eco(): assert nodejs_compile("""<div><%= @value %></div>""", "eco", "some.eco") == \ dict(code="""\ module.exports = function(__obj) { if (!__obj) __obj = {}; var __out = []; var __capture = function(callback) { var out = __out, result; __out = []; callback.call(this); result = __out.join(''); __out = out; return __safe(result); }; var __sanitize = function(value) { if (value && value.ecoSafe) { return value; } else if (typeof value !== 'undefined' && value != null) { return __escape(value); } else { return ''; } }; var __safe = function(value) { if (value && value.ecoSafe) { return value; } else { if (!(typeof value !== 'undefined' && value != null)) value = ''; var result = new String(value); result.ecoSafe = true; return result; } }; var __escape = function(value) { return ('' + value) .replace(/&/g, '&') .replace(/</g, '<') .replace(/>/g, '>') .replace(/"/g, '"'); }; (function() { (function() { __out.push('<div>'); __out.push(__sanitize(this.value)); __out.push('</div>'); }).call(this); }).call(__obj); return __out.join(''); };""", deps=[]) assert nodejs_compile("""<div><%= @@value %></div>""", "eco", "some.eco") == \ dict(error=dict( line=2, column=24, message=u'unexpected @', text=u'some.eco:2:24:unexpected @', extract=u'__out.push __sanitize @@value', annotated='some.eco:2:24:unexpected @\n __out.push __sanitize @@value\n ^'))
def test_nodejs_compile_javascript(): assert nodejs_compile("""function f(a, b) { return a + b; };""", "javascript", "some.js") == dict( code=""""use strict";\nfunction f(a, b) { return a + b; }\n;\n""", deps=[] ) assert nodejs_compile("""var some = require('some/module');""", "javascript", "some.js") == dict( code=""""use strict";\nvar some = require('some/module');\n""", deps=["some/module"] ) assert nodejs_compile("""function f(a, b) { eturn a + b; };""", "javascript", "some.js") == dict( error=dict(line=1, column=26, message="';' expected.", text="some.js:1:26:';' expected.") )
def test_nodejs_compile_less(): assert buc.nodejs_compile(""".bk-some-style { color: mix(#ff0000, #0000ff, 50%); }""", "less", "some.less") == \ dict(code=""".bk-some-style{color:#800080}""") assert buc.nodejs_compile(""".bk-some-style color: green; }""", "less", "some.less") == \ dict(error=dict( line=1, column=21, message="Unrecognised input", text="some.less:1:21:Unrecognised input", extract=".bk-some-style color: green; }", annotated="some.less:1:21:Unrecognised input\n .bk-some-style color: green; }"))
def test_nodejs_compile_javascript(): assert nodejs_compile("""function f(a, b) { return a + b; };""", "javascript", "some.js") == \ dict(code=""""use strict";\nfunction f(a, b) { return a + b; }\n;\n""", deps=[]) assert nodejs_compile("""var some = require('some/module');""", "javascript", "some.js") == \ dict(code=""""use strict";\nvar some = require('some/module');\n""", deps=["some/module"]) assert nodejs_compile("""function f(a, b) { eturn a + b; };""", "javascript", "some.js") == \ dict(error=dict( line=1, column=26, message="';' expected.", text="some.js:1:26:';' expected."))
def test_nodejs_compile_javascript(): assert nodejs_compile("""function f(a, b) { return a + b; };""", "javascript", "some.js") == \ dict(code="""function f(a, b) { return a + b; };""", deps=[]) assert nodejs_compile("""var some = require('some/module');""", "javascript", "some.js") == \ dict(code="""var some = require('some/module');""", deps=["some/module"]) assert nodejs_compile("""function f(a, b) { eturn a + b; };""", "javascript", "some.js") == \ dict(error=dict( line=1, column=25, message="Unexpected token", text="some.js:1:25:Unexpected token"))
def test_nodejs_compile_coffeescript(): assert buc.nodejs_compile("""(a, b) -> a + b""", "coffeescript", "some.coffee") == \ dict(code="""\ (function (a, b) { return a + b; }); """, deps=[]) assert buc.nodejs_compile("""some = require 'some/module'""", "coffeescript", "some.coffee") == \ dict(code="""\ var some; some = require('some/module'); """, deps=["some/module"]) assert buc.nodejs_compile("""(a, b) -> a + b +""", "coffeescript", "some.coffee") == \ dict(error="SyntaxError: unexpected end of input")
def test_nodejs_compile_javascript(): assert buc.nodejs_compile("""function f(a, b) { return a + b; };""", "javascript", "some.js") == \ dict(code="""\ function f(a, b) { return a + b; } ; """, deps=[]) assert buc.nodejs_compile("""var some = require('some/module');""", "javascript", "some.js") == \ dict(code="""\ var some = require('some/module'); """, deps=["some/module"]) assert buc.nodejs_compile("""function f(a, b) { eturn a + b; };""", "javascript", "some.js") == \ dict(error= '\x1b[96msome.js\x1b[0m:\x1b[93m1\x1b[0m:\x1b[93m26\x1b[0m - ' "\x1b[91merror\x1b[0m\x1b[90m TS1005: \x1b[0m';' expected.\n" '\n' '\x1b[7m1\x1b[0m function f(a, b) { eturn a + b; };\n' '\x1b[7m \x1b[0m \x1b[91m ~\x1b[0m\n')
def test_nodejs_compile_coffeescript(): assert nodejs_compile("""(a, b) -> a + b""", "coffeescript", "some.coffee") == \ dict(code="""(function(a, b) {\n return a + b;\n});\n""", deps=[]) assert nodejs_compile("""some = require 'some/module'""", "coffeescript", "some.coffee") == \ dict(code="""var some;\n\nsome = require('some/module');\n""", deps=["some/module"]) assert nodejs_compile("""(a, b) -> a + b +""", "coffeescript", "some.coffee") == \ dict(error=dict( message="unexpected end of input", text="some.coffee:unexpected end of input")) assert nodejs_compile("""some = require some/module'""", "coffeescript", "some.coffee") == \ dict(error=dict( line=1, column=27, message="missing '", text="some.coffee:1:27:missing '", extract="some = require some/module'", annotated="some.coffee:1:27:missing '\n some = require some/module'\n ^")) assert nodejs_compile("""(a, b) -> a + b +""", "coffeescript", "some.coffee") == \ dict(error=dict( message="unexpected end of input", text="some.coffee:unexpected end of input")) assert nodejs_compile("""some = require some/module'""", "coffeescript", "some.coffee") == \ dict(error=dict( line=1, column=27, message="missing '", text="some.coffee:1:27:missing '", extract="some = require some/module'", annotated="some.coffee:1:27:missing '\n some = require some/module'\n ^"))
def test_nodejs_compile_javascript() -> None: assert buc.nodejs_compile("""function f(a, b) { return a + b; };""", "javascript", "some.js") == \ dict(code="""\ function f(a, b) { return a + b; } ; """, deps=[]) assert buc.nodejs_compile("""const some = require('some/module');""", "javascript", "some.js") == \ dict(code="""\ const some = require('some/module'); """, deps=["some/module"]) assert buc.nodejs_compile(""" const {Model} = require("lib/model"); class MyModel extends Model { static __name__ = 'MyModel'; } exports.MyModel = MyModel; """, "javascript", "some.js") == \ dict(code="""\ const { Model } = require("lib/model"); class MyModel extends Model { } MyModel.__name__ = 'MyModel'; exports.MyModel = MyModel; """, deps=["lib/model"]) assert buc.nodejs_compile("""function f(a, b) { eturn a + b; };""", "javascript", "some.js") == \ dict(error= '\x1b[96msome.js\x1b[0m:\x1b[93m1\x1b[0m:\x1b[93m20\x1b[0m - ' '\x1b[91merror\x1b[0m\x1b[90m TS1435: \x1b[0mUnknown keyword or ' "identifier. Did you mean 'return'?\n" '\n' '\x1b[7m1\x1b[0m function f(a, b) { eturn a + b; };\n' '\x1b[7m \x1b[0m \x1b[91m ~~~~~\x1b[0m\n' )
def test_nodejs_compile_javascript(): assert nodejs_compile("""function f(a, b) { return a + b; };""", "javascript", "some.js") == \ dict(code="""\ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function f(a, b) { return a + b; } ; """, deps=[]) assert nodejs_compile("""var some = require('some/module');""", "javascript", "some.js") == \ dict(code="""\ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var some = require('some/module'); """, deps=["some/module"]) assert nodejs_compile("""function f(a, b) { eturn a + b; };""", "javascript", "some.js") == \ dict(error=dict( line=1, column=26, message="';' expected.", text="some.js:1:26:';' expected."))
def test_nodejs_compile_javascript(): assert buc.nodejs_compile("""function f(a, b) { return a + b; };""", "javascript", "some.js") == \ dict(code="""\ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function f(a, b) { return a + b; } ; """, deps=[]) assert buc.nodejs_compile("""var some = require('some/module');""", "javascript", "some.js") == \ dict(code="""\ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var some = require('some/module'); """, deps=["some/module"]) assert buc.nodejs_compile("""function f(a, b) { eturn a + b; };""", "javascript", "some.js") == \ dict(error=dict( line=1, column=26, message="';' expected.", text="some.js:1:26:';' expected."))
def test_nodejs_compile_javascript(): assert buc.nodejs_compile("""function f(a, b) { return a + b; };""", "javascript", "some.js") == \ dict(code="""\ function f(a, b) { return a + b; } ; """, deps=[]) assert buc.nodejs_compile("""var some = require('some/module');""", "javascript", "some.js") == \ dict(code="""\ var some = require('some/module'); """, deps=["some/module"]) assert buc.nodejs_compile(""" const {Model} = require("lib/model"); class MyModel extends Model { static __name__ = 'MyModel'; } exports.MyModel = MyModel; """, "javascript", "some.js") == \ dict(code="""\ const { Model } = require("lib/model"); class MyModel extends Model { } MyModel.__name__ = 'MyModel'; exports.MyModel = MyModel; """, deps=["lib/model"]) assert buc.nodejs_compile("""function f(a, b) { eturn a + b; };""", "javascript", "some.js") == \ dict(error= '\x1b[96msome.js\x1b[0m:\x1b[93m1\x1b[0m:\x1b[93m26\x1b[0m - ' "\x1b[91merror\x1b[0m\x1b[90m TS1005: \x1b[0m';' expected.\n" '\n' '\x1b[7m1\x1b[0m function f(a, b) { eturn a + b; };\n' '\x1b[7m \x1b[0m \x1b[91m ~\x1b[0m\n')
def test_nodejs_compile_coffeescript(): assert nodejs_compile("""(a, b) -> a + b""", "coffeescript", "some.coffee") == \ dict(code="""\ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); (function (a, b) { return a + b; }); """, deps=[]) assert nodejs_compile("""some = require 'some/module'""", "coffeescript", "some.coffee") == \ dict(code="""\ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var some; some = require('some/module'); """, deps=["some/module"]) assert nodejs_compile("""(a, b) -> a + b +""", "coffeescript", "some.coffee") == \ dict(error=dict( message="unexpected end of input", text="some.coffee:unexpected end of input")) assert nodejs_compile("""some = require some/module'""", "coffeescript", "some.coffee") == \ dict(error=dict( line=1, column=27, message="missing '", text="some.coffee:1:27:missing '", extract="some = require some/module'", annotated="some.coffee:1:27:missing '\n some = require some/module'\n ^")) assert nodejs_compile("""(a, b) -> a + b +""", "coffeescript", "some.coffee") == \ dict(error=dict( message="unexpected end of input", text="some.coffee:unexpected end of input")) assert nodejs_compile("""some = require some/module'""", "coffeescript", "some.coffee") == \ dict(error=dict( line=1, column=27, message="missing '", text="some.coffee:1:27:missing '", extract="some = require some/module'", annotated="some.coffee:1:27:missing '\n some = require some/module'\n ^"))
def test_nodejs_compile_coffeescript(): assert buc.nodejs_compile("""(a, b) -> a + b""", "coffeescript", "some.coffee") == \ dict(code="""\ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); (function (a, b) { return a + b; }); """, deps=[]) assert buc.nodejs_compile("""some = require 'some/module'""", "coffeescript", "some.coffee") == \ dict(code="""\ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var some; some = require('some/module'); """, deps=["some/module"]) assert buc.nodejs_compile("""(a, b) -> a + b +""", "coffeescript", "some.coffee") == \ dict(error=dict( message="unexpected end of input", text="some.coffee:unexpected end of input")) assert buc.nodejs_compile("""some = require some/module'""", "coffeescript", "some.coffee") == \ dict(error=dict( line=1, column=27, message="missing '", text="some.coffee:1:27:missing '", extract="some = require some/module'", annotated="some.coffee:1:27:missing '\n some = require some/module'\n ^")) assert buc.nodejs_compile("""(a, b) -> a + b +""", "coffeescript", "some.coffee") == \ dict(error=dict( message="unexpected end of input", text="some.coffee:unexpected end of input")) assert buc.nodejs_compile("""some = require some/module'""", "coffeescript", "some.coffee") == \ dict(error=dict( line=1, column=27, message="missing '", text="some.coffee:1:27:missing '", extract="some = require some/module'", annotated="some.coffee:1:27:missing '\n some = require some/module'\n ^"))
def test_nodejs_compile_eco(): assert nodejs_compile("""<div><%= @value %></div>""", "eco", "some.eco") == \ dict(code="""\ "use strict"; function default_1(__obj) { if (!__obj) __obj = {}; var __out = []; var __capture = function (callback) { var out = __out, result; __out = []; callback.call(this); result = __out.join(''); __out = out; return __safe(result); }; var __sanitize = function (value) { if (value && value.ecoSafe) { return value; } else if (typeof value !== 'undefined' && value != null) { return __escape(value); } else { return ''; } }; var __safe = function (value) { if (value && value.ecoSafe) { return value; } else { if (!(typeof value !== 'undefined' && value != null)) value = ''; var result = new String(value); result.ecoSafe = true; return result; } }; var __escape = function (value) { return ('' + value) .replace(/&/g, '&') .replace(/</g, '<') .replace(/>/g, '>') .replace(/"/g, '"'); }; (function () { (function () { __out.push('<div>'); __out.push(__sanitize(this.value)); __out.push('</div>'); }).call(this); }).call(__obj); return __out.join(''); } Object.defineProperty(exports, "__esModule", { value: true }); exports.default = default_1; ; """, deps=[]) assert nodejs_compile("""<div><%= @@value %></div>""", "eco", "some.eco") == \ dict(error=dict( line=2, column=24, message=u'unexpected @', text=u'some.eco:2:24:unexpected @', extract=u'__out.push __sanitize @@value', annotated='some.eco:2:24:unexpected @\n __out.push __sanitize @@value\n ^'))
def test_nodejs_compile_less(): assert buc.nodejs_compile(""".bk-some-style { color: mix(#ff0000, #0000ff, 50%); }""", "less", "some.less") == \ dict(code=""".bk-some-style{color:#800080}""") assert buc.nodejs_compile(""".bk-some-style color: green; }""", "less", "some.less") == \ dict(error="ParseError: Unrecognised input in some.less on line 1, column 21:\n1 .bk-some-style color: green; }\n")