Before:
  runtime ale_linters/go/golangci_lint.vim

After:
  call ale#linter#Reset()

Execute (The golangci-lint handler should handle only typecheck lines as errors):
  call ale#test#SetFilename('app/main.go')

  AssertEqual
  \ [
  \   {
  \     'lnum': 1,
  \     'col': 0,
  \     'text': 'typecheck - found packages main (main.go) and validator (validation.go) in ',
  \     'type': 'E',
  \     'filename': ale#path#Simplify(expand('%:p:h') . '/main.go'),
  \   },
  \   {
  \     'lnum': 1,
  \     'col': 1,
  \     'text': 'typecheck - package validator_test; expected package main_test',
  \     'type': 'E',
  \     'filename': ale#path#Simplify(expand('%:p:h') . '/validation_encoder_test.go'),
  \   },
  \   {
  \     'lnum': 1,
  \     'col': 1,
  \     'text': 'typecheck - package validator_test; expected package main_test',
  \     'type': 'E',
  \     'filename': ale#path#Simplify(expand('%:p:h') . '/validation_error_test.go'),
  \   },
  \   {
  \     'lnum': 505,
  \     'col': 75,
  \     'text': 'gomnd - Magic number: 404, in <argument> detected',
  \     'type': 'W',
  \     'filename': ale#path#Simplify(expand('%:p:h') . '/main.go'),
  \   }
  \ ],
  \ ale_linters#go#golangci_lint#Handler(bufnr(''), [
  \ '{',
  \ '  "Issues": [',
  \ '  {',
  \ '    "FromLinter": "typecheck",',
  \ '    "Text": "found packages main (main.go) and validator (validation.go) in ",',
  \ '    "Severity": "",',
  \ '    "SourceLines": [',
  \ '      "package main"',
  \ '    ],',
  \ '    "Pos": {',
  \ '      "Filename": "main.go",',
  \ '      "Offset": 0,',
  \ '      "Line": 1,',
  \ '      "Column": 0',
  \ '    },',
  \ '    "ExpectNoLint": false,',
  \ '    "ExpectedNoLintLinter": ""',
  \ '  },',
  \ '  {',
  \ '    "FromLinter": "typecheck",',
  \ '    "Text": "package validator_test; expected package main_test",',
  \ '    "Severity": "",',
  \ '    "SourceLines": [',
  \ '      "package validator_test"',
  \ '    ],',
  \ '    "Pos": {',
  \ '      "Filename": "validation_encoder_test.go",',
  \ '      "Offset": 0,',
  \ '      "Line": 1,',
  \ '      "Column": 1',
  \ '    },',
  \ '    "ExpectNoLint": false,',
  \ '    "ExpectedNoLintLinter": ""',
  \ '  },',
  \ '  {',
  \ '    "FromLinter": "typecheck",',
  \ '    "Text": "package validator_test; expected package main_test",',
  \ '    "Severity": "",',
  \ '    "SourceLines": [',
  \ '      "package validator_test"',
  \ '    ],',
  \ '    "Pos": {',
  \ '      "Filename": "validation_error_test.go",',
  \ '      "Offset": 0,',
  \ '      "Line": 1,',
  \ '      "Column": 1',
  \ '    },',
  \ '    "ExpectNoLint": false,',
  \ '    "ExpectedNoLintLinter": ""',
  \ '  },',
  \ '  {',
  \ '    "FromLinter": "gomnd",',
  \ '    "Text": "Magic number: 404, in <argument> detected",',
  \ '    "Severity": "",',
  \ '    "SourceLines": [',
  \ '      "package validator_test"',
  \ '    ],',
  \ '    "Pos": {',
  \ '      "Filename": "main.go",',
  \ '      "Offset": 0,',
  \ '      "Line": 505,',
  \ '      "Column": 75',
  \ '    },',
  \ '    "ExpectNoLint": false,',
  \ '    "ExpectedNoLintLinter": ""',
  \ '    }',
  \ '  ]',
  \ '}',
  \ ])

Execute (The golangci-lint handler should set proper filename):
  call ale#test#SetFilename('app/cmd/server/main.go')

  AssertEqual
  \ [
  \   {
  \     'lnum': 198,
  \     'col': 19,
  \     'text': 'funlen - Function getConfig has too many statements (51 > 50)',
  \     'type': 'W',
  \     'filename': ale#path#Simplify(expand('%:p:h') . '/main.go'),
  \   },
  \ ],
  \ ale_linters#go#golangci_lint#Handler(bufnr(''), [
  \ '{',
  \ '  "Issues": [',
  \ '  {',
  \ '    "FromLinter": "funlen",',
  \ '    "Text": "Function getConfig has too many statements (51 > 50)",',
  \ '    "Severity": "",',
  \ '    "SourceLines": [',
  \ '      "package main"',
  \ '    ],',
  \ '    "Pos": {',
  \ '      "Filename": "cmd/server/main.go",',
  \ '      "Offset": 5374,',
  \ '      "Line": 198,',
  \ '      "Column": 19',
  \ '    },',
  \ '    "ExpectNoLint": false,',
  \ '    "ExpectedNoLintLinter": ""',
  \ '  }',
  \ '  ]',
  \ '}',
  \ ])
