1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
/**
* @file Tests for `no-js-extension` rule
* @author Casey Visco <cvisco@gmail.com>
*/
"use strict";
const testRule = require("../../rule-tester");
const fixtures = require("../../fixtures");
const rule = require("../../../lib/rules/no-js-extension");
// -----------------------------------------------------------------------------
// Fixtures
// -----------------------------------------------------------------------------
const NON_REQUIREJS_DEFINE_WITH_JS_EXT = `
module([
'aaa.js'
], function () {
/* ... */
});
`;
// -----------------------------------------------------------------------------
// Tests
// -----------------------------------------------------------------------------
const ERROR = {
message: "Don't use .js extension in dependency path.",
type: "Literal"
};
testRule("no-js-extension", rule, {
valid: [
fixtures.BAD_REQUIRE_EMPTY,
fixtures.AMD_DEFINE,
fixtures.AMD_EMPTY_DEFINE,
fixtures.AMD_EMPTY_REQUIRE,
fixtures.AMD_EMPTY_REQUIREJS,
fixtures.AMD_REQUIRE,
fixtures.AMD_REQUIRE_RELATIVE,
fixtures.AMD_REQUIRE_WITH_ERRBACK,
fixtures.AMD_REQUIREJS,
fixtures.AMD_REQUIREJS_RELATIVE,
fixtures.AMD_REQUIREJS_WITH_ERRBACK,
fixtures.CJS_WITH_EXPORTS,
fixtures.CJS_WITH_MODULE_EXPORTS,
fixtures.CJS_WITH_RETURN,
fixtures.NAMED_AMD_DEFINE,
fixtures.NAMED_AMD_EMPTY_DEFINE,
fixtures.NAMED_CJS_DEFINE,
fixtures.DYNAMIC_AMD_REQUIRE_WITH_ERRBACK,
fixtures.DYNAMIC_AMD_REQUIREJS_WITH_ERRBACK,
fixtures.DYNAMIC_MIXED_AMD_REQUIRE,
fixtures.DYNAMIC_MIXED_AMD_REQUIREJS,
fixtures.DYNAMIC_TERNARY_AMD_REQUIRE,
fixtures.DYNAMIC_TERNARY_AMD_REQUIREJS,
fixtures.DYNAMIC_TERNARY_CJS_REQUIRE,
fixtures.DYNAMIC_TERNARY_CJS_REQUIREJS,
fixtures.DYNAMIC_VARIABLE_AMD_REQUIRE,
fixtures.DYNAMIC_VARIABLE_AMD_REQUIREJS,
fixtures.DYNAMIC_VARIABLE_CJS_REQUIRE,
fixtures.DYNAMIC_VARIABLE_CJS_REQUIREJS,
fixtures.CONDITIONAL_AMD_REQUIRE,
fixtures.CONDITIONAL_AMD_REQUIREJS,
fixtures.CONDITIONAL_CJS_REQUIRE,
fixtures.CONDITIONAL_CJS_REQUIREJS,
fixtures.CONDITIONAL_NESTED_AMD_REQUIRE,
fixtures.CONDITIONAL_NESTED_AMD_REQUIREJS,
fixtures.CONDITIONAL_TERNARY_CJS_REQUIRE,
fixtures.CONDITIONAL_TERNARY_CJS_REQUIREJS,
NON_REQUIREJS_DEFINE_WITH_JS_EXT,
// plugins check
fixtures.AMD_DEFINE_WITH_FOO_PLUGIN_AND_JS_EXT,
fixtures.AMD_REQUIRE_WITH_FOO_PLUGIN_AND_JS_EXT,
fixtures.AMD_REQUIREJS_WITH_FOO_PLUGIN_AND_JS_EXT,
fixtures.CJS_WITH_FOO_PLUGIN_AND_JS_EXT
],
invalid: [
{ code: fixtures.AMD_REQUIRE_WITH_JS_EXT, errors: [ERROR] },
{ code: fixtures.AMD_REQUIREJS_WITH_JS_EXT, errors: [ERROR] },
{ code: fixtures.AMD_REQUIRE_RELATIVE_WITH_JS_EXT, errors: [ERROR] },
{ code: fixtures.AMD_DEFINE_WITH_JS_EXT, errors: [ERROR] },
{ code: fixtures.CJS_WITH_JS_EXT, errors: [ERROR] },
{ code: fixtures.NAMED_AMD_DEFINE_WITH_JS_EXT, errors: [ERROR] },
{ code: fixtures.NAMED_CJS_DEFINE_WITH_JS_EXT, errors: [ERROR] },
// one plugin check
{
code: fixtures.AMD_DEFINE_WITH_FOO_PLUGIN_AND_JS_EXT,
options: [["foo"]],
errors: [ERROR]
},
{
code: fixtures.AMD_REQUIRE_WITH_FOO_PLUGIN_AND_JS_EXT,
options: [["foo"]],
errors: [ERROR]
},
{
code: fixtures.AMD_REQUIREJS_WITH_FOO_PLUGIN_AND_JS_EXT,
options: [["foo"]],
errors: [ERROR]
},
{
code: fixtures.CJS_WITH_FOO_PLUGIN_AND_JS_EXT,
options: [["foo"]],
errors: [ERROR]
},
// more plugins check
{
code: fixtures.AMD_DEFINE_WITH_FOO_PLUGIN_AND_JS_EXT,
options: [["more", "plugins", "foo"]],
errors: [ERROR]
},
{
code: fixtures.AMD_REQUIRE_WITH_FOO_PLUGIN_AND_JS_EXT,
options: [["more", "plugins", "foo"]],
errors: [ERROR]
},
{
code: fixtures.AMD_REQUIREJS_WITH_FOO_PLUGIN_AND_JS_EXT,
options: [["more", "plugins", "foo"]],
errors: [ERROR]
},
{
code: fixtures.CJS_WITH_FOO_PLUGIN_AND_JS_EXT,
options: [["more", "plugins", "foo"]],
errors: [ERROR]
}
]
});
|