summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorbosr <bosr@users.noreply.github.com>2021-04-07 12:34:34 +0200
committerGitHub <noreply@github.com>2021-04-07 19:34:34 +0900
commitf0887d3e6178482255f11aa378124aef3699245f (patch)
treece9b0300de08ab7220ab63ed4e857da876367f9f /test
parent06f57ca9733aab6e6b67015917fdfd4bf1c70c48 (diff)
downloadale-f0887d3e6178482255f11aa378124aef3699245f.zip
apple-swift-format: linter and fixer with config swiftpm support (#3671)
Diffstat (limited to 'test')
-rw-r--r--test/fixers/test_appleswiftformat_fixer_callback.vader47
-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.vader42
-rw-r--r--test/linter/test_swift_swiftformat.vader25
-rw-r--r--test/test-files/swift/swift-package-project-with-config/.swift-format10
-rw-r--r--test/test-files/swift/swift-package-project-with-config/Package.swift0
-rw-r--r--test/test-files/swift/swift-package-project-with-config/src/folder/dummy.swift0
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