aboutsummaryrefslogtreecommitdiffstats
path: root/tests/mason-core/functional/string_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tests/mason-core/functional/string_spec.lua')
-rw-r--r--tests/mason-core/functional/string_spec.lua43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/mason-core/functional/string_spec.lua b/tests/mason-core/functional/string_spec.lua
new file mode 100644
index 00000000..25409f64
--- /dev/null
+++ b/tests/mason-core/functional/string_spec.lua
@@ -0,0 +1,43 @@
+local _ = require "mason-core.functional"
+
+describe("functional: string", function()
+ it("matches string patterns", function()
+ assert.is_true(_.matches("foo", "foo"))
+ assert.is_true(_.matches("bar", "foobarbaz"))
+ assert.is_true(_.matches("ba+r", "foobaaaaaaarbaz"))
+
+ assert.is_false(_.matches("ba+r", "foobharbaz"))
+ assert.is_false(_.matches("bar", "foobaz"))
+ end)
+
+ it("should format strings", function()
+ assert.equals("Hello World!", _.format("%s", "Hello World!"))
+ assert.equals("special manouvers", _.format("%s manouvers", "special"))
+ end)
+
+ it("should split strings", function()
+ assert.same({ "This", "is", "a", "sentence" }, _.split("%s", "This is a sentence"))
+ assert.same({ "This", "is", "a", "sentence" }, _.split("|", "This|is|a|sentence"))
+ end)
+
+ it("should gsub strings", function()
+ assert.same("predator", _.gsub("^apex%s*", "", "apex predator"))
+ end)
+
+ it("should dedent strings", function()
+ assert.equals(
+ [[Lorem
+Ipsum
+ Dolor
+ Sit
+ Amet]],
+ _.dedent [[
+ Lorem
+ Ipsum
+ Dolor
+ Sit
+ Amet
+]]
+ )
+ end)
+end)