diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/fixers/test_appleswiftformat_fixer_callback.vader | 47 | ||||
-rw-r--r-- | test/handler/test_appleswiftformat_handler.vader (renamed from test/handler/test_swiftformat_handler.vader) | 10 | ||||
-rw-r--r-- | test/linter/test_swift_appleswiftformat.vader | 42 | ||||
-rw-r--r-- | test/linter/test_swift_swiftformat.vader | 25 | ||||
-rw-r--r-- | test/test-files/swift/swift-package-project-with-config/.swift-format | 10 | ||||
-rw-r--r-- | test/test-files/swift/swift-package-project-with-config/Package.swift | 0 | ||||
-rw-r--r-- | test/test-files/swift/swift-package-project-with-config/src/folder/dummy.swift | 0 |
7 files changed, 104 insertions, 30 deletions
diff --git a/test/fixers/test_appleswiftformat_fixer_callback.vader b/test/fixers/test_appleswiftformat_fixer_callback.vader new file mode 100644 index 00000000..72465f4f --- /dev/null +++ b/test/fixers/test_appleswiftformat_fixer_callback.vader @@ -0,0 +1,47 @@ +Before: + call ale#assert#SetUpFixerTest('swift', 'apple-swift-format') + +After: + call ale#assert#TearDownFixerTest() + +Execute(The swiftformat callback should return the correct default values): + call ale#test#SetFilename('../test-files/swift/dummy.swift') + let g:ale_swift_appleswiftformat_executable = 'xxxinvalid' + let g:ale_swift_appleswiftformat_use_swiftpm = 0 + + AssertEqual + \ { + \ 'read_temporary_file': 1, + \ 'command': ale#Escape(g:ale_swift_appleswiftformat_executable) + \ . ' format --in-place %t', + \ }, + \ ale#fixers#appleswiftformat#Fix(bufnr('')) + +Execute(The swiftformat callback should return the correct default values and located configuration): + call ale#test#SetDirectory('/testplugin/test/test-files/swift/swift-package-project-with-config') + call ale#test#SetFilename('src/folder/dummy.swift') + + let g:ale_swift_appleswiftformat_executable = 'xxxinvalid' + let g:ale_swift_appleswiftformat_use_swiftpm = 0 + + AssertEqual + \ { + \ 'read_temporary_file': 1, + \ 'command': ale#Escape(g:ale_swift_appleswiftformat_executable) + \ . ' format --in-place %t --configuration ' . glob(g:dir . '/.swift-format'), + \ }, + \ ale#fixers#appleswiftformat#Fix(bufnr('')) + + call ale#test#RestoreDirectory() + +Execute(The swiftformat callback should use swiftpm is use_swiftpm is set to 1): + call ale#test#SetFilename('../test-files/swift/swift-package-project/src/folder/dummy.swift') + let g:ale_swift_appleswiftformat_use_swiftpm = 1 + + AssertEqual + \ { + \ 'read_temporary_file': 1, + \ 'command': ale#Escape('swift') + \ . ' run swift-format format --in-place %t', + \ }, + \ ale#fixers#appleswiftformat#Fix(bufnr('')) diff --git a/test/handler/test_swiftformat_handler.vader b/test/handler/test_appleswiftformat_handler.vader index 3dcc4f1a..818bd9c5 100644 --- a/test/handler/test_swiftformat_handler.vader +++ b/test/handler/test_appleswiftformat_handler.vader @@ -1,10 +1,10 @@ Before: - runtime ale_linters/swift/swiftformat.vim + runtime ale_linters/swift/appleswiftformat.vim After: call ale#linter#Reset() -Execute(The swiftformat handler should parse lines correctly): +Execute(The appleswiftformat handler should parse lines correctly): AssertEqual \ [ \ { @@ -22,7 +22,7 @@ Execute(The swiftformat handler should parse lines correctly): \ 'text': 'remove 1 space' \ }, \ ], - \ ale_linters#swift#swiftformat#Handle(bufnr(''), [ - \ 'Sources/main.swift:4:21: warning: [DoNotUseSemicolons]: remove '';'' and move the next statement to the new line', - \ 'Sources/main.swift:3:12: warning: [Spacing]: remove 1 space', + \ ale_linters#swift#appleswiftformat#Handle(bufnr(''), [ + \ 'Sources/main.swift:4:21: warning: [DoNotUseSemicolons] remove '';'' and move the next statement to the new line', + \ 'Sources/main.swift:3:12: warning: [Spacing] remove 1 space', \ ]) diff --git a/test/linter/test_swift_appleswiftformat.vader b/test/linter/test_swift_appleswiftformat.vader new file mode 100644 index 00000000..3dbae8ff --- /dev/null +++ b/test/linter/test_swift_appleswiftformat.vader @@ -0,0 +1,42 @@ +Before: + call ale#assert#SetUpLinterTest('swift', 'appleswiftformat') + +After: + call ale#assert#TearDownLinterTest() + +Execute(Should use default command when use_swiftpm is not set): + call ale#test#SetFilename('../test-files/swift/non-swift-package-project/src/folder/dummy.swift') + + let g:ale_swift_appleswiftformat_executable = 'swift-format' + let g:ale_swift_appleswiftformat_use_swiftpm = 0 + + AssertLinter 'swift-format', ale#Escape('swift-format') . ' lint %t' + +Execute(Should use default command and available configuration when use_swiftpm is not set): + call ale#test#SetDirectory('/testplugin/test/test-files/swift/swift-package-project-with-config') + call ale#test#SetFilename('src/folder/dummy.swift') + + let g:ale_swift_appleswiftformat_executable = 'swift-format' + let g:ale_swift_appleswiftformat_use_swiftpm = 0 + + AssertLinter 'swift-format', + \ ale#Escape('swift-format') . ' lint %t ' . '--configuration ' + \ . glob(g:dir . '/.swift-format') + + call ale#test#RestoreDirectory() + +Execute(Should use swift run when use_swiftpm is set to 1): + call ale#test#SetFilename('../test-files/swift/swift-package-project/src/folder/dummy.swift') + + let g:ale_swift_appleswiftformat_use_swiftpm = 1 + + AssertLinter 'swift', ale#Escape('swift') . ' run swift-format lint %t' + +Execute(Should use the provided global executable): + call ale#test#SetFilename('../test-files/swift/swift-package-project/src/folder/dummy.swift') + + let g:ale_swift_appleswiftformat_executable = '/path/to/custom/swift-format' + let g:ale_swift_appleswiftformat_use_swiftpm = 0 + + AssertLinter '/path/to/custom/swift-format', + \ ale#Escape('/path/to/custom/swift-format') . ' lint %t' diff --git a/test/linter/test_swift_swiftformat.vader b/test/linter/test_swift_swiftformat.vader deleted file mode 100644 index 9f6ee62e..00000000 --- a/test/linter/test_swift_swiftformat.vader +++ /dev/null @@ -1,25 +0,0 @@ -Before: - call ale#assert#SetUpLinterTest('swift', 'swiftformat') - -After: - call ale#assert#TearDownLinterTest() - -Execute(Should use default command when not in a swift package): - call ale#test#SetFilename('../test-files/swift/non-swift-package-project/src/folder/dummy.swift') - - AssertLinter 'swift-format', - \ ale#Escape('swift-format') . ' --mode lint %t' - -Execute(Should use swift run when in a swift package): - call ale#test#SetFilename('../test-files/swift/swift-package-project/src/folder/dummy.swift') - - AssertLinter 'swift', - \ ale#Escape('swift') . ' run swift-format --mode lint %t' - -Execute(Should let users configure a global executable and override local paths): - call ale#test#SetFilename('../test-files/swift/swift-package-project/src/folder/dummy.swift') - - let g:ale_swift_swiftformat_executable = '/path/to/custom/swift-format' - - AssertLinter '/path/to/custom/swift-format', - \ ale#Escape('/path/to/custom/swift-format') . ' --mode lint %t' diff --git a/test/test-files/swift/swift-package-project-with-config/.swift-format b/test/test-files/swift/swift-package-project-with-config/.swift-format new file mode 100644 index 00000000..19fb8b96 --- /dev/null +++ b/test/test-files/swift/swift-package-project-with-config/.swift-format @@ -0,0 +1,10 @@ +{ + "version": 1, + "lineLength": 100, + "indentation": { + "spaces": 4 + }, + "respectsExistingLineBreaks": true, + "lineBreakBeforeControlFlowKeywords": true, + "lineBreakBeforeEachArgument": true +} diff --git a/test/test-files/swift/swift-package-project-with-config/Package.swift b/test/test-files/swift/swift-package-project-with-config/Package.swift new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/test/test-files/swift/swift-package-project-with-config/Package.swift diff --git a/test/test-files/swift/swift-package-project-with-config/src/folder/dummy.swift b/test/test-files/swift/swift-package-project-with-config/src/folder/dummy.swift new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/test/test-files/swift/swift-package-project-with-config/src/folder/dummy.swift |