neovim-flake/flake/tests/checks/homeManagerModule.nix

66 lines
1.5 KiB
Nix

{
inputs,
nixosTest,
homeManagerModules,
...
}:
nixosTest {
name = "home-manager-test";
skipLint = true;
nodes.machine = {
imports = [
inputs.home-manager.nixosModules.home-manager
../profiles/minimal.nix
];
config = {
home-manager = {
sharedModules = [
homeManagerModules.nvf
];
users.test = {
home.stateVersion = "24.05";
programs.nvf.enable = true;
};
};
};
};
testScript = ''
import subprocess
machine.wait_for_unit("default.target")
def check_errs(process):
# Check for errors
print("Connecting to Neovim process")
# Capture stdout and stderr
stdout, stderr = process.communicate()
# Print captured stdout and stderr
if stdout:
print("Captured stdout:")
print(stdout.decode('utf-8'))
if stderr:
print("Captured stderr:")
print(stderr.decode('utf-8'))
def run_neovim_headless():
print("Running Neovim in headless mode.")
# Run Neovim in headless mode
nvim_process = subprocess.Popen(['nvim', '--headless'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
check_errs(nvim_process)
# Load configuration file
nvim_process.stdin.write(b':NonExistentCommand\n')
nvim_process.stdin.flush()
# run Neovim in headless mode
# and expect it to return sucessfully
machine.succeed(run_neovim_headless())
'';
}