Skip to content

Commit 5357528

Browse files
committed
tests/vscode: refactor to also test unknown package if IFD is enabled
1 parent 027ac43 commit 5357528

File tree

6 files changed

+88
-54
lines changed

6 files changed

+88
-54
lines changed
Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,35 @@
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' (k: v: lib.nameValuePair "vscode-${k}-unknown" (v unknownPackage)) tests;
33+
in
34+
35+
knownTests // unknownTests

tests/modules/programs/vscode/keybindings.nix

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
# Test that keybindings.json is created correctly.
2-
{ pkgs, lib, ... }:
2+
package:
3+
4+
{ config, pkgs, lib, ... }:
35

46
let
7+
cfg = config.programs.vscode;
8+
willUseIfd = package.pname != "vscode";
9+
510
bindings = [
611
{
712
key = "ctrl+c";
@@ -30,20 +35,20 @@ let
3035
keybindingsPath =
3136
name:
3237
if pkgs.stdenv.hostPlatform.isDarwin then
33-
"Library/Application Support/Code/User/${
38+
"Library/Application Support/${cfg.nameShort}/User/${
3439
lib.optionalString (name != "default") "profiles/${name}/"
3540
}keybindings.json"
3641
else
37-
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}keybindings.json";
42+
".config/${cfg.nameShort}/User/${lib.optionalString (name != "default") "profiles/${name}/"}keybindings.json";
3843

3944
settingsPath =
4045
name:
4146
if pkgs.stdenv.hostPlatform.isDarwin then
42-
"Library/Application Support/Code/User/${
47+
"Library/Application Support/${cfg.nameShort}/User/${
4348
lib.optionalString (name != "default") "profiles/${name}/"
4449
}settings.json"
4550
else
46-
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}settings.json";
51+
".config/${cfg.nameShort}/User/${lib.optionalString (name != "default") "profiles/${name}/"}settings.json";
4752

4853
content = ''
4954
[
@@ -109,20 +114,17 @@ let
109114
'';
110115

111116
expectedCustomKeybindings = pkgs.writeText "custom-expected.json" content;
112-
113117
in
114-
{
118+
119+
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
115120
programs.vscode = {
116121
enable = true;
117122
profiles = {
118123
default.keybindings = bindings;
119124
test.keybindings = bindings;
120125
custom.keybindings = customBindingsPath;
121126
};
122-
package = pkgs.writeScriptBin "vscode" "" // {
123-
pname = "vscode";
124-
version = "1.75.0";
125-
};
127+
inherit package;
126128
};
127129

128130
nmt.script = ''

tests/modules/programs/vscode/mcp.nix

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
1-
{ pkgs, lib, ... }:
1+
package:
2+
3+
{ config, pkgs, lib, ... }:
24

35
let
6+
cfg = config.programs.vscode;
7+
willUseIfd = package.pname != "vscode";
48

59
mcpFilePath =
610
name:
711
if pkgs.stdenv.hostPlatform.isDarwin then
8-
"Library/Application Support/Code/User/${
12+
"Library/Application Support/${cfg.nameShort}/User/${
913
lib.optionalString (name != "default") "profiles/${name}/"
1014
}mcp.json"
1115
else
12-
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}mcp.json";
16+
".config/${cfg.nameShort}/User/${lib.optionalString (name != "default") "profiles/${name}/"}mcp.json";
1317

1418
content = ''
1519
{
@@ -42,15 +46,12 @@ let
4246
'';
4347

4448
expectedCustomMcp = pkgs.writeText "custom-expected.json" content;
45-
4649
in
47-
{
50+
51+
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
4852
programs.vscode = {
4953
enable = true;
50-
package = pkgs.writeScriptBin "vscode" "" // {
51-
pname = "vscode";
52-
version = "1.75.0";
53-
};
54+
inherit package;
5455
profiles = {
5556
default.userMcp = mcp;
5657
test.userMcp = mcp;

tests/modules/programs/vscode/snippets.nix

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
1-
{ pkgs, lib, ... }:
1+
package:
2+
3+
{ config, pkgs, lib, ... }:
24

35
let
6+
cfg = config.programs.vscode;
7+
willUseIfd = package.pname != "vscode";
48

59
snippetsDir =
610
name:
711
if pkgs.stdenv.hostPlatform.isDarwin then
8-
"Library/Application Support/Code/User/${
12+
"Library/Application Support/${cfg.nameShort}/User/${
913
lib.optionalString (name != "default") "profiles/${name}/"
1014
}/snippets"
1115
else
12-
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}snippets";
16+
".config/${cfg.nameShort}/User/${lib.optionalString (name != "default") "profiles/${name}/"}snippets";
1317

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

@@ -61,15 +65,12 @@ let
6165
};
6266
};
6367
};
64-
6568
in
66-
{
69+
70+
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
6771
programs.vscode = {
6872
enable = true;
69-
package = pkgs.writeScriptBin "vscode" "" // {
70-
pname = "vscode";
71-
version = "1.75.0";
72-
};
73+
inherit package;
7374
profiles = {
7475
default = snippets;
7576
test = snippets;

tests/modules/programs/vscode/tasks.nix

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
1-
{ pkgs, lib, ... }:
1+
package:
2+
3+
{ config, pkgs, lib, ... }:
24

35
let
6+
cfg = config.programs.vscode;
7+
willUseIfd = package.pname != "vscode";
48

59
tasksFilePath =
610
name:
711
if pkgs.stdenv.hostPlatform.isDarwin then
8-
"Library/Application Support/Code/User/${
12+
"Library/Application Support/${cfg.nameShort}/User/${
913
lib.optionalString (name != "default") "profiles/${name}/"
1014
}tasks.json"
1115
else
12-
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}tasks.json";
16+
".config/${cfg.nameShort}/User/${lib.optionalString (name != "default") "profiles/${name}/"}tasks.json";
1317

1418
content = ''
1519
{
@@ -57,15 +61,12 @@ let
5761
'';
5862

5963
expectedCustomTasks = pkgs.writeText "custom-expected.json" content;
60-
6164
in
62-
{
65+
66+
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
6367
programs.vscode = {
6468
enable = true;
65-
package = pkgs.writeScriptBin "vscode" "" // {
66-
pname = "vscode";
67-
version = "1.75.0";
68-
};
69+
inherit package;
6970
profiles = {
7071
default.userTasks = tasks;
7172
test.userTasks = tasks;

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,29 @@
1-
{ pkgs, ... }:
1+
package:
2+
3+
{ config, pkgs, lib, ... }:
24

35
let
6+
cfg = config.programs.vscode;
7+
willUseIfd = package.pname != "vscode";
48

59
settingsPath =
610
if pkgs.stdenv.hostPlatform.isDarwin then
7-
"Library/Application Support/Code/User/settings.json"
11+
"Library/Application Support/${cfg.nameShort}/User/settings.json"
812
else
9-
".config/Code/User/settings.json";
13+
".config/${cfg.nameShort}/User/settings.json";
1014

1115
expectedSettings = pkgs.writeText "settings-expected.json" ''
1216
{
1317
"extensions.autoCheckUpdates": false,
1418
"update.mode": "none"
1519
}
1620
'';
17-
1821
in
19-
{
22+
23+
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
2024
programs.vscode = {
2125
enable = true;
22-
package = pkgs.writeScriptBin "vscode" "" // {
23-
pname = "vscode";
24-
version = "1.75.0";
25-
};
26+
inherit package;
2627
profiles.default = {
2728
enableUpdateCheck = false;
2829
enableExtensionUpdateCheck = false;

0 commit comments

Comments
 (0)