mirror of
https://github.com/erlef/setup-beam.git
synced 2026-07-22 22:56:07 +00:00
Add Elixir/credo and Elixir/dialyzer problem matchers (#65)
This commit is contained in:
@@ -41,6 +41,38 @@
|
|||||||
"line": 2
|
"line": 2
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"owner": "elixir-credoOutputDefault",
|
||||||
|
"severity": "warning",
|
||||||
|
"pattern": [
|
||||||
|
{
|
||||||
|
"regexp": "^\u2503\\s\\[\\w\\]\\s[\u2191|\u2197|\u2192|\u2198|\u2193]\\s(.*)$",
|
||||||
|
"message": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"regexp": "^\u2503\\s{7}(.*):(\\d+):(\\d+)\\s.*$",
|
||||||
|
"file": 1,
|
||||||
|
"line": 2,
|
||||||
|
"column": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"owner": "elixir-dialyzerOutputDefault",
|
||||||
|
"severity": "warning",
|
||||||
|
"pattern": [
|
||||||
|
{
|
||||||
|
"regexp": "^(.*):(\\d+):(.*)",
|
||||||
|
"file": 1,
|
||||||
|
"line": 2,
|
||||||
|
"code": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"regexp": "^(.*)$",
|
||||||
|
"message": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ async function all() {
|
|||||||
await testElixirMixCompileError()
|
await testElixirMixCompileError()
|
||||||
await testElixirMixCompileWarning()
|
await testElixirMixCompileWarning()
|
||||||
await testElixirMixTestFailure()
|
await testElixirMixTestFailure()
|
||||||
|
await testElixirCredoOutputDefault()
|
||||||
|
await testElixirDialyzerOutputDefault()
|
||||||
}
|
}
|
||||||
|
|
||||||
async function testElixirMixCompileError() {
|
async function testElixirMixCompileError() {
|
||||||
@@ -55,6 +57,41 @@ async function testElixirMixTestFailure() {
|
|||||||
assert.equal(line, '9')
|
assert.equal(line, '9')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function testElixirCredoOutputDefault() {
|
||||||
|
const [messagePattern, filePattern] = problemMatcher.find(
|
||||||
|
({ owner }) => owner === 'elixir-credoOutputDefault',
|
||||||
|
).pattern
|
||||||
|
|
||||||
|
const firstOutput = '┃ [F] → Function is too complex (CC is 29, max is 9).'
|
||||||
|
const secondOutput = '┃ lib/test.ex:15:7 #(Test.hello)'
|
||||||
|
|
||||||
|
const [, message] = firstOutput.match(messagePattern.regexp)
|
||||||
|
assert.equal(message, 'Function is too complex (CC is 29, max is 9).')
|
||||||
|
|
||||||
|
const [, file, line, column] = secondOutput.match(filePattern.regexp)
|
||||||
|
assert.equal(file, 'lib/test.ex')
|
||||||
|
assert.equal(line, '15')
|
||||||
|
assert.equal(column, '7')
|
||||||
|
}
|
||||||
|
|
||||||
|
async function testElixirDialyzerOutputDefault() {
|
||||||
|
const [messagePattern, filePattern] = problemMatcher.find(
|
||||||
|
({ owner }) => owner === 'elixir-dialyzerOutputDefault',
|
||||||
|
).pattern
|
||||||
|
|
||||||
|
const firstOutput = 'lib/test.ex:15:invalid_contract'
|
||||||
|
const secondOutput =
|
||||||
|
'The @spec for the function does not match the success typing of the function.'
|
||||||
|
|
||||||
|
const [, file, line, code] = firstOutput.match(messagePattern.regexp)
|
||||||
|
assert.equal(file, 'lib/test.ex')
|
||||||
|
assert.equal(line, '15')
|
||||||
|
assert.equal(code, 'invalid_contract')
|
||||||
|
|
||||||
|
const [, message] = secondOutput.match(filePattern.regexp)
|
||||||
|
assert.equal(message, secondOutput)
|
||||||
|
}
|
||||||
|
|
||||||
all()
|
all()
|
||||||
.then(() => process.exit(0))
|
.then(() => process.exit(0))
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
|||||||
Vendored
+32
@@ -41,6 +41,38 @@
|
|||||||
"line": 2
|
"line": 2
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"owner": "elixir-credoOutputDefault",
|
||||||
|
"severity": "warning",
|
||||||
|
"pattern": [
|
||||||
|
{
|
||||||
|
"regexp": "^\u2503\\s\\[\\w\\]\\s[\u2191|\u2197|\u2192|\u2198|\u2193]\\s(.*)$",
|
||||||
|
"message": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"regexp": "^\u2503\\s{7}(.*):(\\d+):(\\d+)\\s.*$",
|
||||||
|
"file": 1,
|
||||||
|
"line": 2,
|
||||||
|
"column": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"owner": "elixir-dialyzerOutputDefault",
|
||||||
|
"severity": "warning",
|
||||||
|
"pattern": [
|
||||||
|
{
|
||||||
|
"regexp": "^(.*):(\\d+):(.*)",
|
||||||
|
"file": 1,
|
||||||
|
"line": 2,
|
||||||
|
"code": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"regexp": "^(.*)$",
|
||||||
|
"message": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user