{ config, lib, pkgs, ... }: with lib; let expectedConfig = pkgs.writeText "i3blocks-expected-config" '' [block1first] command=echo first interval=1 [block3second] command=echo second interval=2 [block2third] command=echo third interval=3 ''; in { config = { programs.i3blocks = { enable = true; package = config.lib.test.mkStubPackage { }; bars = with lib; { bar1 = { block1first = { command = "echo first"; interval = 1; }; block2third = hm.dag.entryAfter [ "block3second" ] { command = "echo third"; interval = 3; }; block3second = hm.dag.entryAfter [ "block1first" ] { command = "echo second"; interval = 2; }; }; bar2 = { block1first = { command = "echo first"; interval = 1; }; block2third = hm.dag.entryAfter [ "block3second" ] { command = "echo third"; interval = 3; }; block3second = hm.dag.entryAfter [ "block1first" ] { command = "echo second"; interval = 2; }; }; }; }; test.stubs.i3blocks = { }; nmt.script = '' assertFileExists home-files/.config/i3blocks/bar1 assertFileExists home-files/.config/i3blocks/bar2 assertFileContent home-files/.config/i3blocks/bar1 ${expectedConfig} assertFileContent home-files/.config/i3blocks/bar2 ${expectedConfig} ''; }; }