|
1 | 1 | "use strict";
|
2 | 2 |
|
3 | 3 | var assign = require("object-assign");
|
4 |
| - |
5 |
| -var expect = require("chai").expect; |
6 |
| - |
7 | 4 | var path = require("path");
|
8 | 5 |
|
9 | 6 | var linter = require("eslint").linter,
|
10 |
| - CLIEngine = require("eslint").CLIEngine, |
11 | 7 | ESLintTester = require("eslint-tester");
|
12 | 8 |
|
13 | 9 | var eslintTester = new ESLintTester(linter);
|
14 | 10 |
|
15 |
| -function valid(c) { |
16 |
| - return { |
17 |
| - code: c, |
18 |
| - ecmaFeatures: { modules: true} |
19 |
| - }; |
20 |
| -} |
21 | 11 |
|
22 |
| -function invalid(c, errors) { |
23 |
| - return assign(valid(c), {errors: errors}); |
| 12 | +var ecmaFeatures = {ecmaFeatures: { modules: true}}; |
| 13 | + |
| 14 | +function filename(f) { |
| 15 | + return path.join(process.cwd(), "./files", f); |
24 | 16 | }
|
25 | 17 |
|
26 | 18 | eslintTester.addRuleTest("lib/rules/valid-relative-path", {
|
27 | 19 | valid: [
|
28 |
| - valid("import foo from 'bar';") |
| 20 | + assign({ |
| 21 | + code: "import * as foo from 'bar';" // not relative |
| 22 | + }, ecmaFeatures), |
| 23 | + assign({ |
| 24 | + code: "import foo from './bar';", |
| 25 | + filename: filename("foo.js") |
| 26 | + }, ecmaFeatures), |
| 27 | + assign({ |
| 28 | + code: "import bar from './bar.js';", |
| 29 | + args: [1, [""]], |
| 30 | + filename: filename("foo.js"), |
| 31 | + errors: [{message: "Imported file does not exist."}] |
| 32 | + }, ecmaFeatures) |
29 | 33 | ],
|
30 | 34 |
|
31 | 35 | invalid: [
|
32 |
| - invalid("import foo from './bar/baz'", |
33 |
| - [ { message: "Imported file does not exist." } ]) |
| 36 | + assign({ |
| 37 | + code: "import bar from './bar.js';", |
| 38 | + filename: filename("foo.js"), |
| 39 | + errors: [{message: "Imported file does not exist."}] |
| 40 | + }, ecmaFeatures), |
| 41 | + assign({ |
| 42 | + code: "import bar from './baz';", |
| 43 | + filename: filename("foo.js"), |
| 44 | + errors: [{message: "Imported file does not exist."}] |
| 45 | + }, ecmaFeatures) |
34 | 46 | ]
|
35 | 47 | });
|
36 |
| - |
37 |
| -function executeOnFile(filename) { |
38 |
| - return this.executeOnFiles([path.join(process.cwd(), "./files", filename)]); |
39 |
| -} |
40 |
| - |
41 |
| -function checkErrorMessage(report, message) { |
42 |
| - return report.results[0].messages.some(function (result) { return result.message === message; }); |
43 |
| -} |
44 |
| - |
45 |
| -describe("valid-relative-path: against actual files", function () { |
46 |
| - var cli = new CLIEngine({ |
47 |
| - rulePaths: [path.resolve(process.cwd(), "lib/rules")], |
48 |
| - rules: { "valid-relative-path": 2 } |
49 |
| - }); |
50 |
| - cli.executeOnFile = executeOnFile; |
51 |
| - |
52 |
| - it("should follow relative paths.", function () { |
53 |
| - var report = cli.executeOnFiles([path.join(__dirname, "../../../files/foo.js")]); |
54 |
| - expect(report.errorCount).to.equal(0); |
55 |
| - }); |
56 |
| - |
57 |
| - it("should fail for non-existent imports.", function () { |
58 |
| - var report = cli.executeOnFile("bar.js"); |
59 |
| - expect(report.errorCount).to.equal(1); |
60 |
| - expect(checkErrorMessage(report, "Imported file does not exist.")).to.be.true; |
61 |
| - }); |
62 |
| -}); |
0 commit comments