Skip to content

Commit be85df6

Browse files
andre4ik3rycee
authored andcommitted
vscode: also test unknown package if IFD is enabled
1 parent 94e2dea commit be85df6

File tree

6 files changed

+125
-54
lines changed

6 files changed

+125
-54
lines changed
Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,37 @@
1-
{
2-
vscode-keybindings = ./keybindings.nix;
3-
vscode-tasks = ./tasks.nix;
4-
vscode-mcp = ./mcp.nix;
5-
vscode-update-checks = ./update-checks.nix;
6-
vscode-snippets = ./snippets.nix;
7-
}
1+
{ pkgs, lib, ... }:
2+
3+
let
4+
knownPackage = pkgs.writeScriptBin "vscode" "" // {
5+
pname = "vscode";
6+
version = "1.75.0";
7+
};
8+
9+
unknownPackage = pkgs.writeTextFile rec {
10+
name = "${derivationArgs.pname}-${derivationArgs.version}";
11+
derivationArgs = {
12+
pname = "test-vscode-unknown";
13+
version = "0.1.0";
14+
};
15+
text = builtins.toJSON {
16+
dataFolderName = ".test-vscode-unknown";
17+
nameShort = passthru.longName;
18+
};
19+
destination = "/lib/vscode/resources/app/product.json";
20+
passthru.longName = "Test VSCode Fork";
21+
};
22+
23+
tests = {
24+
keybindings = import ./keybindings.nix;
25+
tasks = import ./tasks.nix;
26+
mcp = import ./mcp.nix;
27+
update-checks = import ./update-checks.nix;
28+
snippets = import ./snippets.nix;
29+
};
30+
31+
knownTests = lib.mapAttrs' (k: v: lib.nameValuePair "vscode-${k}-known" (v knownPackage)) tests;
32+
unknownTests = lib.mapAttrs' (
33+
k: v: lib.nameValuePair "vscode-${k}-unknown" (v unknownPackage)
34+
) tests;
35+
in
36+
37+
knownTests // unknownTests

tests/modules/programs/vscode/keybindings.nix

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
# Test that keybindings.json is created correctly.
2-
{ pkgs, lib, ... }:
2+
package:
3+
4+
{
5+
config,
6+
pkgs,
7+
lib,
8+
...
9+
}:
310

411
let
12+
cfg = config.programs.vscode;
13+
willUseIfd = package.pname != "vscode";
14+
515
bindings = [
616
{
717
key = "ctrl+c";
@@ -30,20 +40,24 @@ let
3040
keybindingsPath =
3141
name:
3242
if pkgs.stdenv.hostPlatform.isDarwin then
33-
"Library/Application Support/Code/User/${
43+
"Library/Application Support/${cfg.nameShort}/User/${
3444
lib.optionalString (name != "default") "profiles/${name}/"
3545
}keybindings.json"
3646
else
37-
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}keybindings.json";
47+
".config/${cfg.nameShort}/User/${
48+
lib.optionalString (name != "default") "profiles/${name}/"
49+
}keybindings.json";
3850

3951
settingsPath =
4052
name:
4153
if pkgs.stdenv.hostPlatform.isDarwin then
42-
"Library/Application Support/Code/User/${
54+
"Library/Application Support/${cfg.nameShort}/User/${
4355
lib.optionalString (name != "default") "profiles/${name}/"
4456
}settings.json"
4557
else
46-
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}settings.json";
58+
".config/${cfg.nameShort}/User/${
59+
lib.optionalString (name != "default") "profiles/${name}/"
60+
}settings.json";
4761

4862
content = ''
4963
[
@@ -109,20 +123,17 @@ let
109123
'';
110124

111125
expectedCustomKeybindings = pkgs.writeText "custom-expected.json" content;
112-
113126
in
114-
{
127+
128+
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
115129
programs.vscode = {
116130
enable = true;
117131
profiles = {
118132
default.keybindings = bindings;
119133
test.keybindings = bindings;
120134
custom.keybindings = customBindingsPath;
121135
};
122-
package = pkgs.writeScriptBin "vscode" "" // {
123-
pname = "vscode";
124-
version = "1.75.0";
125-
};
136+
inherit package;
126137
};
127138

128139
nmt.script = ''

tests/modules/programs/vscode/mcp.nix

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
1-
{ pkgs, lib, ... }:
1+
package:
2+
3+
{
4+
config,
5+
pkgs,
6+
lib,
7+
...
8+
}:
29

310
let
11+
cfg = config.programs.vscode;
12+
willUseIfd = package.pname != "vscode";
413

514
mcpFilePath =
615
name:
716
if pkgs.stdenv.hostPlatform.isDarwin then
8-
"Library/Application Support/Code/User/${
17+
"Library/Application Support/${cfg.nameShort}/User/${
918
lib.optionalString (name != "default") "profiles/${name}/"
1019
}mcp.json"
1120
else
12-
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}mcp.json";
21+
".config/${cfg.nameShort}/User/${
22+
lib.optionalString (name != "default") "profiles/${name}/"
23+
}mcp.json";
1324

1425
content = ''
1526
{
@@ -42,15 +53,12 @@ let
4253
'';
4354

4455
expectedCustomMcp = pkgs.writeText "custom-expected.json" content;
45-
4656
in
47-
{
57+
58+
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
4859
programs.vscode = {
4960
enable = true;
50-
package = pkgs.writeScriptBin "vscode" "" // {
51-
pname = "vscode";
52-
version = "1.75.0";
53-
};
61+
inherit package;
5462
profiles = {
5563
default.userMcp = mcp;
5664
test.userMcp = mcp;

tests/modules/programs/vscode/snippets.nix

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
1-
{ pkgs, lib, ... }:
1+
package:
2+
3+
{
4+
config,
5+
pkgs,
6+
lib,
7+
...
8+
}:
29

310
let
11+
cfg = config.programs.vscode;
12+
willUseIfd = package.pname != "vscode";
413

514
snippetsDir =
615
name:
716
if pkgs.stdenv.hostPlatform.isDarwin then
8-
"Library/Application Support/Code/User/${
17+
"Library/Application Support/${cfg.nameShort}/User/${
918
lib.optionalString (name != "default") "profiles/${name}/"
1019
}/snippets"
1120
else
12-
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}snippets";
21+
".config/${cfg.nameShort}/User/${
22+
lib.optionalString (name != "default") "profiles/${name}/"
23+
}snippets";
1324

1425
globalSnippetsPath = name: "${snippetsDir name}/global.code-snippets";
1526

@@ -61,15 +72,12 @@ let
6172
};
6273
};
6374
};
64-
6575
in
66-
{
76+
77+
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
6778
programs.vscode = {
6879
enable = true;
69-
package = pkgs.writeScriptBin "vscode" "" // {
70-
pname = "vscode";
71-
version = "1.75.0";
72-
};
80+
inherit package;
7381
profiles = {
7482
default = snippets;
7583
test = snippets;

tests/modules/programs/vscode/tasks.nix

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
1-
{ pkgs, lib, ... }:
1+
package:
2+
3+
{
4+
config,
5+
pkgs,
6+
lib,
7+
...
8+
}:
29

310
let
11+
cfg = config.programs.vscode;
12+
willUseIfd = package.pname != "vscode";
413

514
tasksFilePath =
615
name:
716
if pkgs.stdenv.hostPlatform.isDarwin then
8-
"Library/Application Support/Code/User/${
17+
"Library/Application Support/${cfg.nameShort}/User/${
918
lib.optionalString (name != "default") "profiles/${name}/"
1019
}tasks.json"
1120
else
12-
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}tasks.json";
21+
".config/${cfg.nameShort}/User/${
22+
lib.optionalString (name != "default") "profiles/${name}/"
23+
}tasks.json";
1324

1425
content = ''
1526
{
@@ -57,15 +68,12 @@ let
5768
'';
5869

5970
expectedCustomTasks = pkgs.writeText "custom-expected.json" content;
60-
6171
in
62-
{
72+
73+
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
6374
programs.vscode = {
6475
enable = true;
65-
package = pkgs.writeScriptBin "vscode" "" // {
66-
pname = "vscode";
67-
version = "1.75.0";
68-
};
76+
inherit package;
6977
profiles = {
7078
default.userTasks = tasks;
7179
test.userTasks = tasks;

tests/modules/programs/vscode/update-checks.nix

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,34 @@
1-
{ pkgs, ... }:
1+
package:
2+
3+
{
4+
config,
5+
pkgs,
6+
lib,
7+
...
8+
}:
29

310
let
11+
cfg = config.programs.vscode;
12+
willUseIfd = package.pname != "vscode";
413

514
settingsPath =
615
if pkgs.stdenv.hostPlatform.isDarwin then
7-
"Library/Application Support/Code/User/settings.json"
16+
"Library/Application Support/${cfg.nameShort}/User/settings.json"
817
else
9-
".config/Code/User/settings.json";
18+
".config/${cfg.nameShort}/User/settings.json";
1019

1120
expectedSettings = pkgs.writeText "settings-expected.json" ''
1221
{
1322
"extensions.autoCheckUpdates": false,
1423
"update.mode": "none"
1524
}
1625
'';
17-
1826
in
19-
{
27+
28+
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
2029
programs.vscode = {
2130
enable = true;
22-
package = pkgs.writeScriptBin "vscode" "" // {
23-
pname = "vscode";
24-
version = "1.75.0";
25-
};
31+
inherit package;
2632
profiles.default = {
2733
enableUpdateCheck = false;
2834
enableExtensionUpdateCheck = false;

0 commit comments

Comments
 (0)