summaryrefslogtreecommitdiff
path: root/lua/tests/automated
diff options
context:
space:
mode:
authorSimon Hauser <Simon-Hauser@outlook.de>2022-03-13 19:22:16 +0100
committerGitHub <noreply@github.com>2022-03-13 19:22:16 +0100
commit9f0dd2e40248be826f1e6c5b9dd8ff2bd7b2073d (patch)
treec75f56f77005df7f2ec4520370182080cd2ebf9e /lua/tests/automated
parentef7b6ada6d91a1b2932492d78c730e4fc00cd2ea (diff)
fix: action mt again (#1487)
actions should be concatinable again
Diffstat (limited to 'lua/tests/automated')
-rw-r--r--lua/tests/automated/action_spec.lua123
1 files changed, 120 insertions, 3 deletions
diff --git a/lua/tests/automated/action_spec.lua b/lua/tests/automated/action_spec.lua
index 752ed53..634b2d7 100644
--- a/lua/tests/automated/action_spec.lua
+++ b/lua/tests/automated/action_spec.lua
@@ -3,9 +3,7 @@ local action_set = require "telescope.actions.set"
local transform_mod = require("telescope.actions.mt").transform_mod
-local eq = function(a, b)
- assert.are.same(a, b)
-end
+local eq = assert.are.same
describe("actions", function()
it("should allow creating custom actions", function()
@@ -207,6 +205,29 @@ describe("actions", function()
eq(true, called_post)
end)
+ it("static_pre static_post", function()
+ local called_pre = false
+ local called_post = false
+ local static_post = 0
+ local a = transform_mod {
+ x = {
+ pre = function()
+ called_pre = true
+ end,
+ action = function()
+ return "x"
+ end,
+ post = function()
+ called_post = true
+ end,
+ },
+ }
+
+ eq("x", a.x())
+ eq(true, called_pre)
+ eq(true, called_post)
+ end)
+
it("can call both", function()
local a = transform_mod {
x = function()
@@ -298,6 +319,102 @@ describe("actions", function()
eq("modified: 5", a.x(5))
end)
+ it("handles add with two different tables", function()
+ local count_a = 0
+ local count_b = 0
+ local a = transform_mod {
+ x = function()
+ count_a = count_a + 1
+ end,
+ }
+ local b = transform_mod {
+ y = function()
+ count_b = count_b + 1
+ end,
+ }
+
+ local called_count = 0
+ local count_inc = function()
+ called_count = called_count + 1
+ end
+
+ a.x:enhance {
+ post = count_inc,
+ }
+ b.y:enhance {
+ post = count_inc,
+ }
+
+ local x_plus_y = a.x + b.y
+ x_plus_y()
+
+ eq(2, called_count)
+ eq(1, count_a)
+ eq(1, count_b)
+ end)
+
+ it("handles tripple concat with static pre post", function()
+ local count_a = 0
+ local count_b = 0
+ local count_c = 0
+ local static_pre = 0
+ local static_post = 0
+ local a = transform_mod {
+ x = {
+ pre = function()
+ static_pre = static_pre + 1
+ end,
+ action = function()
+ count_a = count_a + 1
+ end,
+ post = function()
+ static_post = static_post + 1
+ end,
+ },
+ }
+ local b = transform_mod {
+ y = {
+ pre = function()
+ static_pre = static_pre + 1
+ end,
+ action = function()
+ count_b = count_b + 1
+ end,
+ post = function()
+ static_post = static_post + 1
+ end,
+ },
+ }
+ local c = transform_mod {
+ z = {
+ pre = function()
+ static_pre = static_pre + 1
+ end,
+ action = function()
+ count_c = count_c + 1
+ end,
+ post = function()
+ static_post = static_post + 1
+ end,
+ },
+ }
+
+ local replace_count = 0
+ a.x:replace(function()
+ replace_count = replace_count + 1
+ end)
+
+ local x_plus_y_plus_z = a.x + b.y + c.z
+ x_plus_y_plus_z()
+
+ eq(0, count_a)
+ eq(1, count_b)
+ eq(1, count_c)
+ eq(1, replace_count)
+ eq(3, static_pre)
+ eq(3, static_post)
+ end)
+
describe("action_set", function()
it("can replace `action_set.edit`", function()
action_set.edit:replace(function(_, arg)