Add opts.message option to code frames (#7243)
* Add opts.message option to code frames * Fix for missing loc.start in code-frame * Add docs
This commit is contained in:
@@ -299,4 +299,101 @@ describe("@babel/code-frame", function() {
|
||||
].join("\n"),
|
||||
);
|
||||
});
|
||||
|
||||
it("opts.message", function() {
|
||||
const rawLines = ["class Foo {", " constructor()", "};"].join("\n");
|
||||
assert.equal(
|
||||
codeFrameColumns(
|
||||
rawLines,
|
||||
{ start: { line: 2, column: 16 } },
|
||||
{
|
||||
message: "Missing {",
|
||||
},
|
||||
),
|
||||
[
|
||||
" 1 | class Foo {",
|
||||
"> 2 | constructor()",
|
||||
" | ^ Missing {",
|
||||
" 3 | };",
|
||||
].join("\n"),
|
||||
);
|
||||
});
|
||||
|
||||
it("opts.message without column", function() {
|
||||
const rawLines = ["class Foo {", " constructor()", "};"].join("\n");
|
||||
assert.equal(
|
||||
codeFrameColumns(
|
||||
rawLines,
|
||||
{ start: { line: 2 } },
|
||||
{
|
||||
message: "Missing {",
|
||||
},
|
||||
),
|
||||
[
|
||||
" Missing {",
|
||||
" 1 | class Foo {",
|
||||
"> 2 | constructor()",
|
||||
" 3 | };",
|
||||
].join("\n"),
|
||||
);
|
||||
});
|
||||
|
||||
it("opts.message with multiple lines", function() {
|
||||
const rawLines = [
|
||||
"class Foo {",
|
||||
" constructor() {",
|
||||
" console.log(arguments);",
|
||||
" }",
|
||||
"};",
|
||||
].join("\n");
|
||||
assert.equal(
|
||||
codeFrameColumns(
|
||||
rawLines,
|
||||
{
|
||||
start: { line: 2, column: 17 },
|
||||
end: { line: 4, column: 3 },
|
||||
},
|
||||
{
|
||||
message: "something about the constructor body",
|
||||
},
|
||||
),
|
||||
[
|
||||
" 1 | class Foo {",
|
||||
"> 2 | constructor() {",
|
||||
" | ^",
|
||||
"> 3 | console.log(arguments);",
|
||||
" | ^^^^^^^^^^^^^^^^^^^^^^^^^^^",
|
||||
"> 4 | }",
|
||||
" | ^^^ something about the constructor body",
|
||||
" 5 | };",
|
||||
].join("\n"),
|
||||
);
|
||||
});
|
||||
|
||||
it("opts.message with multiple lines without columns", function() {
|
||||
const rawLines = [
|
||||
"class Foo {",
|
||||
" constructor() {",
|
||||
" console.log(arguments);",
|
||||
" }",
|
||||
"};",
|
||||
].join("\n");
|
||||
assert.equal(
|
||||
codeFrameColumns(
|
||||
rawLines,
|
||||
{ start: { line: 2 }, end: { line: 4 } },
|
||||
{
|
||||
message: "something about the constructor body",
|
||||
},
|
||||
),
|
||||
[
|
||||
" something about the constructor body",
|
||||
" 1 | class Foo {",
|
||||
"> 2 | constructor() {",
|
||||
"> 3 | console.log(arguments);",
|
||||
"> 4 | }",
|
||||
" 5 | };",
|
||||
].join("\n"),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user