Skip to content

Commit 2f8a47a

Browse files
committed
tests/lazyloading: reduce repetition
1 parent 5f00c8d commit 2f8a47a

File tree

1 file changed

+103
-122
lines changed
  • tests/test-sources/plugins/lazyloading

1 file changed

+103
-122
lines changed

tests/test-sources/plugins/lazyloading/lz-n.nix

Lines changed: 103 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
let
2+
getFirstLznPlugin =
3+
config:
4+
let
5+
inherit (config.plugins.lz-n) plugins;
6+
in
7+
if plugins == [ ] then null else builtins.head plugins;
8+
9+
getPluginKeys = plugin: if plugin != null && builtins.isList plugin.keys then plugin.keys else [ ];
10+
in
111
{
212
lazy-load-neovim-plugin-configured =
313
{ config, lib, ... }:
@@ -24,31 +34,26 @@
2434
};
2535
};
2636

27-
assertions = [
28-
{
29-
assertion = (builtins.length config.plugins.lz-n.plugins) == 1;
30-
message = "`lz-n.plugins` should have contained a single plugin configuration, but contained ${builtins.toJSON config.plugins.lz-n.plugins}";
31-
}
32-
{
33-
assertion =
34-
let
35-
inherit (config.plugins.lz-n) plugins;
36-
plugin = if plugins == [ ] then null else builtins.head plugins;
37-
keys = if plugin != null && builtins.isList plugin.keys then plugin.keys else [ ];
38-
in
39-
(builtins.length keys) == 1;
40-
message = "`lz-n.plugins[0].keys` should have contained a configuration.";
41-
}
42-
{
43-
assertion =
44-
let
45-
inherit (config.plugins.lz-n) plugins;
46-
plugin = if plugins == [ ] then null else builtins.head plugins;
47-
in
48-
plugin != null && lib.hasInfix config.plugins.neotest.luaConfig.content plugin.after.__raw;
49-
message = "`lz-n.plugins[0].after` should have contained `neotest` lua content.";
50-
}
51-
];
37+
assertions =
38+
let
39+
plugin = getFirstLznPlugin config;
40+
keys = getPluginKeys plugin;
41+
in
42+
[
43+
{
44+
assertion = (builtins.length config.plugins.lz-n.plugins) == 1;
45+
message = "`lz-n.plugins` should have contained a single plugin configuration, but contained ${builtins.toJSON config.plugins.lz-n.plugins}";
46+
}
47+
{
48+
assertion = (builtins.length keys) == 1;
49+
message = "`lz-n.plugins[0].keys` should have contained a configuration.";
50+
}
51+
{
52+
assertion =
53+
plugin != null && lib.hasInfix config.plugins.neotest.luaConfig.content plugin.after.__raw;
54+
message = "`lz-n.plugins[0].after` should have contained `neotest` lua content.";
55+
}
56+
];
5257
};
5358

5459
lazy-load-lz-n-configured =
@@ -104,47 +109,31 @@
104109
];
105110
};
106111
};
107-
assertions = [
108-
{
109-
assertion = (builtins.length config.plugins.lz-n.plugins) == 1;
110-
message = "`lz-n.plugins` should have contained a single plugin configuration, but contained ${builtins.toJSON config.plugins.lz-n.plugins}";
111-
}
112-
{
113-
assertion =
114-
let
115-
plugin = builtins.head config.plugins.lz-n.plugins;
116-
keys = if builtins.isList plugin.keys then plugin.keys else [ ];
117-
in
118-
(builtins.length keys) == 4;
119-
message =
120-
let
121-
plugin = builtins.head config.plugins.lz-n.plugins;
122-
in
123-
"`lz-n.plugins[0].keys` should have contained 4 key configurations, but contained ${builtins.toJSON plugin.keys}";
124-
}
125-
{
126-
assertion =
127-
let
128-
plugin = builtins.head config.plugins.lz-n.plugins;
129-
cmd = plugin.cmd or null;
130-
cmd' = lib.optionals (builtins.isList cmd) cmd;
131-
in
132-
(builtins.length cmd') == 4;
133-
message =
134-
let
135-
plugin = builtins.head config.plugins.lz-n.plugins;
136-
in
137-
"`lz-n.plugins[0].cmd` should have contained 4 cmd configurations, but contained ${builtins.toJSON plugin.cmd}";
138-
}
139-
{
140-
assertion =
141-
let
142-
plugin = builtins.head config.plugins.lz-n.plugins;
143-
in
144-
lib.hasInfix config.plugins.codesnap.luaConfig.content plugin.after.__raw;
145-
message = "`lz-n.plugins[0].after` should have contained `codesnap` lua content.";
146-
}
147-
];
112+
assertions =
113+
let
114+
plugin = getFirstLznPlugin config;
115+
keys = getPluginKeys plugin;
116+
cmd = plugin.cmd or null;
117+
cmd' = lib.optionals (builtins.isList cmd) cmd;
118+
in
119+
[
120+
{
121+
assertion = (builtins.length config.plugins.lz-n.plugins) == 1;
122+
message = "`lz-n.plugins` should have contained a single plugin configuration, but contained ${builtins.toJSON config.plugins.lz-n.plugins}";
123+
}
124+
{
125+
assertion = (builtins.length keys) == 4;
126+
message = "`lz-n.plugins[0].keys` should have contained 4 key configurations, but contained ${builtins.toJSON plugin.keys}";
127+
}
128+
{
129+
assertion = (builtins.length cmd') == 4;
130+
message = "`lz-n.plugins[0].cmd` should have contained 4 cmd configurations, but contained ${builtins.toJSON plugin.cmd}";
131+
}
132+
{
133+
assertion = lib.hasInfix config.plugins.codesnap.luaConfig.content plugin.after.__raw;
134+
message = "`lz-n.plugins[0].after` should have contained `codesnap` lua content.";
135+
}
136+
];
148137
};
149138

150139
dont-lazy-load-colorscheme-automatically =
@@ -201,32 +190,24 @@
201190
};
202191
};
203192

204-
assertions = [
205-
{
206-
assertion = (builtins.length config.plugins.lz-n.plugins) == 1;
207-
message = "`lz-n.plugins` should have contained no plugin configuration, but contained ${builtins.toJSON config.plugins.lz-n.plugins}";
208-
}
209-
{
210-
assertion =
211-
let
212-
plugin = builtins.head config.plugins.lz-n.plugins;
213-
in
214-
plugin.colorscheme == "catppuccin";
215-
message =
216-
let
217-
plugin = builtins.head config.plugins.lz-n.plugins;
218-
in
219-
"`lz-n.plugins[0].colorscheme` should have been `catppuccin`, but contained ${builtins.toJSON plugin.colorscheme}";
220-
}
221-
{
222-
assertion =
223-
let
224-
plugin = builtins.head config.plugins.lz-n.plugins;
225-
in
226-
lib.hasInfix config.colorschemes.catppuccin.luaConfig.content plugin.after.__raw;
227-
message = "`lz-n.plugins[0].after` should have contained `catppuccin` lua content.";
228-
}
229-
];
193+
assertions =
194+
let
195+
plugin = getFirstLznPlugin config;
196+
in
197+
[
198+
{
199+
assertion = (builtins.length config.plugins.lz-n.plugins) == 1;
200+
message = "`lz-n.plugins` should have contained no plugin configuration, but contained ${builtins.toJSON config.plugins.lz-n.plugins}";
201+
}
202+
{
203+
assertion = plugin.colorscheme == "catppuccin";
204+
message = "`lz-n.plugins[0].colorscheme` should have been `catppuccin`, but contained ${builtins.toJSON plugin.colorscheme}";
205+
}
206+
{
207+
assertion = lib.hasInfix config.colorschemes.catppuccin.luaConfig.content plugin.after.__raw;
208+
message = "`lz-n.plugins[0].after` should have contained `catppuccin` lua content.";
209+
}
210+
];
230211
};
231212

232213
lazy-load-enabled-automatically =
@@ -253,22 +234,21 @@
253234
};
254235
};
255236

256-
assertions = [
257-
{
258-
assertion = (builtins.length config.plugins.lz-n.plugins) == 1;
259-
message = "`lz-n.plugins` should have contained a single plugin configuration, but contained ${builtins.toJSON config.plugins.lz-n.plugins}";
260-
}
261-
{
262-
assertion =
263-
let
264-
inherit (config.plugins.lz-n) plugins;
265-
plugin = if plugins == [ ] then null else builtins.head plugins;
266-
keys = if plugin != null && builtins.isList plugin.keys then plugin.keys else [ ];
267-
in
268-
(builtins.length keys) == 1;
269-
message = "`lz-n.plugins[0].keys` should have contained a configuration.";
270-
}
271-
];
237+
assertions =
238+
let
239+
plugin = getFirstLznPlugin config;
240+
keys = getPluginKeys plugin;
241+
in
242+
[
243+
{
244+
assertion = (builtins.length config.plugins.lz-n.plugins) == 1;
245+
message = "`lz-n.plugins` should have contained a single plugin configuration, but contained ${builtins.toJSON config.plugins.lz-n.plugins}";
246+
}
247+
{
248+
assertion = (builtins.length keys) == 1;
249+
message = "`lz-n.plugins[0].keys` should have contained a configuration.";
250+
}
251+
];
272252
};
273253

274254
wrap-functionless-luaConfig =
@@ -290,19 +270,20 @@
290270
};
291271
};
292272

293-
assertions = [
294-
{
295-
assertion = (builtins.length config.plugins.lz-n.plugins) == 1;
296-
message = "`lz-n.plugins` should have contained a single plugin configuration, but contained ${builtins.toJSON config.plugins.lz-n.plugins}";
297-
}
298-
{
299-
assertion =
300-
let
301-
plugin = builtins.head config.plugins.lz-n.plugins;
302-
in
303-
plugin.after.__raw == "function()\n " + config.plugins.telescope.luaConfig.content + " \nend";
304-
message = "`lz-n.plugins[0].after` should have contained a function wrapped `telescope` lua content.";
305-
}
306-
];
273+
assertions =
274+
let
275+
plugin = getFirstLznPlugin config;
276+
in
277+
[
278+
{
279+
assertion = (builtins.length config.plugins.lz-n.plugins) == 1;
280+
message = "`lz-n.plugins` should have contained a single plugin configuration, but contained ${builtins.toJSON config.plugins.lz-n.plugins}";
281+
}
282+
{
283+
assertion =
284+
plugin.after.__raw == "function()\n " + config.plugins.telescope.luaConfig.content + " \nend";
285+
message = "`lz-n.plugins[0].after` should have contained a function wrapped `telescope` lua content.";
286+
}
287+
];
307288
};
308289
}

0 commit comments

Comments
 (0)