mirror of
https://github.com/nix-community/home-manager.git
synced 2025-11-08 11:36:05 +01:00
vscode: also test unknown package if IFD is enabled
This commit is contained in:
parent
03f83f513d
commit
5f06ceafc6
6 changed files with 125 additions and 54 deletions
|
|
@ -1,7 +1,37 @@
|
|||
{
|
||||
vscode-keybindings = ./keybindings.nix;
|
||||
vscode-tasks = ./tasks.nix;
|
||||
vscode-mcp = ./mcp.nix;
|
||||
vscode-update-checks = ./update-checks.nix;
|
||||
vscode-snippets = ./snippets.nix;
|
||||
}
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
knownPackage = pkgs.writeScriptBin "vscode" "" // {
|
||||
pname = "vscode";
|
||||
version = "1.75.0";
|
||||
};
|
||||
|
||||
unknownPackage = pkgs.writeTextFile rec {
|
||||
name = "${derivationArgs.pname}-${derivationArgs.version}";
|
||||
derivationArgs = {
|
||||
pname = "test-vscode-unknown";
|
||||
version = "0.1.0";
|
||||
};
|
||||
text = builtins.toJSON {
|
||||
dataFolderName = ".test-vscode-unknown";
|
||||
nameShort = passthru.longName;
|
||||
};
|
||||
destination = "/lib/vscode/resources/app/product.json";
|
||||
passthru.longName = "Test VSCode Fork";
|
||||
};
|
||||
|
||||
tests = {
|
||||
keybindings = import ./keybindings.nix;
|
||||
tasks = import ./tasks.nix;
|
||||
mcp = import ./mcp.nix;
|
||||
update-checks = import ./update-checks.nix;
|
||||
snippets = import ./snippets.nix;
|
||||
};
|
||||
|
||||
knownTests = lib.mapAttrs' (k: v: lib.nameValuePair "vscode-${k}-known" (v knownPackage)) tests;
|
||||
unknownTests = lib.mapAttrs' (
|
||||
k: v: lib.nameValuePair "vscode-${k}-unknown" (v unknownPackage)
|
||||
) tests;
|
||||
in
|
||||
|
||||
knownTests // unknownTests
|
||||
|
|
|
|||
|
|
@ -1,7 +1,17 @@
|
|||
# Test that keybindings.json is created correctly.
|
||||
{ pkgs, lib, ... }:
|
||||
package:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.programs.vscode;
|
||||
willUseIfd = package.pname != "vscode";
|
||||
|
||||
bindings = [
|
||||
{
|
||||
key = "ctrl+c";
|
||||
|
|
@ -30,20 +40,24 @@ let
|
|||
keybindingsPath =
|
||||
name:
|
||||
if pkgs.stdenv.hostPlatform.isDarwin then
|
||||
"Library/Application Support/Code/User/${
|
||||
"Library/Application Support/${cfg.nameShort}/User/${
|
||||
lib.optionalString (name != "default") "profiles/${name}/"
|
||||
}keybindings.json"
|
||||
else
|
||||
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}keybindings.json";
|
||||
".config/${cfg.nameShort}/User/${
|
||||
lib.optionalString (name != "default") "profiles/${name}/"
|
||||
}keybindings.json";
|
||||
|
||||
settingsPath =
|
||||
name:
|
||||
if pkgs.stdenv.hostPlatform.isDarwin then
|
||||
"Library/Application Support/Code/User/${
|
||||
"Library/Application Support/${cfg.nameShort}/User/${
|
||||
lib.optionalString (name != "default") "profiles/${name}/"
|
||||
}settings.json"
|
||||
else
|
||||
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}settings.json";
|
||||
".config/${cfg.nameShort}/User/${
|
||||
lib.optionalString (name != "default") "profiles/${name}/"
|
||||
}settings.json";
|
||||
|
||||
content = ''
|
||||
[
|
||||
|
|
@ -109,9 +123,9 @@ let
|
|||
'';
|
||||
|
||||
expectedCustomKeybindings = pkgs.writeText "custom-expected.json" content;
|
||||
|
||||
in
|
||||
{
|
||||
|
||||
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
profiles = {
|
||||
|
|
@ -119,10 +133,7 @@ in
|
|||
test.keybindings = bindings;
|
||||
custom.keybindings = customBindingsPath;
|
||||
};
|
||||
package = pkgs.writeScriptBin "vscode" "" // {
|
||||
pname = "vscode";
|
||||
version = "1.75.0";
|
||||
};
|
||||
inherit package;
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
|
|
|
|||
|
|
@ -1,15 +1,26 @@
|
|||
{ pkgs, lib, ... }:
|
||||
package:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.programs.vscode;
|
||||
willUseIfd = package.pname != "vscode";
|
||||
|
||||
mcpFilePath =
|
||||
name:
|
||||
if pkgs.stdenv.hostPlatform.isDarwin then
|
||||
"Library/Application Support/Code/User/${
|
||||
"Library/Application Support/${cfg.nameShort}/User/${
|
||||
lib.optionalString (name != "default") "profiles/${name}/"
|
||||
}mcp.json"
|
||||
else
|
||||
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}mcp.json";
|
||||
".config/${cfg.nameShort}/User/${
|
||||
lib.optionalString (name != "default") "profiles/${name}/"
|
||||
}mcp.json";
|
||||
|
||||
content = ''
|
||||
{
|
||||
|
|
@ -42,15 +53,12 @@ let
|
|||
'';
|
||||
|
||||
expectedCustomMcp = pkgs.writeText "custom-expected.json" content;
|
||||
|
||||
in
|
||||
{
|
||||
|
||||
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.writeScriptBin "vscode" "" // {
|
||||
pname = "vscode";
|
||||
version = "1.75.0";
|
||||
};
|
||||
inherit package;
|
||||
profiles = {
|
||||
default.userMcp = mcp;
|
||||
test.userMcp = mcp;
|
||||
|
|
|
|||
|
|
@ -1,15 +1,26 @@
|
|||
{ pkgs, lib, ... }:
|
||||
package:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.programs.vscode;
|
||||
willUseIfd = package.pname != "vscode";
|
||||
|
||||
snippetsDir =
|
||||
name:
|
||||
if pkgs.stdenv.hostPlatform.isDarwin then
|
||||
"Library/Application Support/Code/User/${
|
||||
"Library/Application Support/${cfg.nameShort}/User/${
|
||||
lib.optionalString (name != "default") "profiles/${name}/"
|
||||
}/snippets"
|
||||
else
|
||||
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}snippets";
|
||||
".config/${cfg.nameShort}/User/${
|
||||
lib.optionalString (name != "default") "profiles/${name}/"
|
||||
}snippets";
|
||||
|
||||
globalSnippetsPath = name: "${snippetsDir name}/global.code-snippets";
|
||||
|
||||
|
|
@ -61,15 +72,12 @@ let
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
|
||||
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.writeScriptBin "vscode" "" // {
|
||||
pname = "vscode";
|
||||
version = "1.75.0";
|
||||
};
|
||||
inherit package;
|
||||
profiles = {
|
||||
default = snippets;
|
||||
test = snippets;
|
||||
|
|
|
|||
|
|
@ -1,15 +1,26 @@
|
|||
{ pkgs, lib, ... }:
|
||||
package:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.programs.vscode;
|
||||
willUseIfd = package.pname != "vscode";
|
||||
|
||||
tasksFilePath =
|
||||
name:
|
||||
if pkgs.stdenv.hostPlatform.isDarwin then
|
||||
"Library/Application Support/Code/User/${
|
||||
"Library/Application Support/${cfg.nameShort}/User/${
|
||||
lib.optionalString (name != "default") "profiles/${name}/"
|
||||
}tasks.json"
|
||||
else
|
||||
".config/Code/User/${lib.optionalString (name != "default") "profiles/${name}/"}tasks.json";
|
||||
".config/${cfg.nameShort}/User/${
|
||||
lib.optionalString (name != "default") "profiles/${name}/"
|
||||
}tasks.json";
|
||||
|
||||
content = ''
|
||||
{
|
||||
|
|
@ -57,15 +68,12 @@ let
|
|||
'';
|
||||
|
||||
expectedCustomTasks = pkgs.writeText "custom-expected.json" content;
|
||||
|
||||
in
|
||||
{
|
||||
|
||||
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.writeScriptBin "vscode" "" // {
|
||||
pname = "vscode";
|
||||
version = "1.75.0";
|
||||
};
|
||||
inherit package;
|
||||
profiles = {
|
||||
default.userTasks = tasks;
|
||||
test.userTasks = tasks;
|
||||
|
|
|
|||
|
|
@ -1,12 +1,21 @@
|
|||
{ pkgs, ... }:
|
||||
package:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.programs.vscode;
|
||||
willUseIfd = package.pname != "vscode";
|
||||
|
||||
settingsPath =
|
||||
if pkgs.stdenv.hostPlatform.isDarwin then
|
||||
"Library/Application Support/Code/User/settings.json"
|
||||
"Library/Application Support/${cfg.nameShort}/User/settings.json"
|
||||
else
|
||||
".config/Code/User/settings.json";
|
||||
".config/${cfg.nameShort}/User/settings.json";
|
||||
|
||||
expectedSettings = pkgs.writeText "settings-expected.json" ''
|
||||
{
|
||||
|
|
@ -14,15 +23,12 @@ let
|
|||
"update.mode": "none"
|
||||
}
|
||||
'';
|
||||
|
||||
in
|
||||
{
|
||||
|
||||
lib.mkIf (willUseIfd -> config.test.enableLegacyIfd) {
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.writeScriptBin "vscode" "" // {
|
||||
pname = "vscode";
|
||||
version = "1.75.0";
|
||||
};
|
||||
inherit package;
|
||||
profiles.default = {
|
||||
enableUpdateCheck = false;
|
||||
enableExtensionUpdateCheck = false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue