{ config, ... }:
let
  inherit (config.lib.test) mkStubPackage;
in
{
  config = {
    xdg.mime.enable = true;
    xdg.mime.sharedMimeInfoPackage = mkStubPackage {
      name = "update-mime-database";
      buildScript = ''
        mkdir -p $out/bin
        echo '#!/bin/sh' > $out/bin/update-mime-database
        echo 'mkdir -p $out/share/mime && touch $out/share/mime/mime.cache' >> $out/bin/update-mime-database
        chmod +x $out/bin/update-mime-database
      '';
    };
    xdg.mime.desktopFileUtilsPackage = mkStubPackage {
      name = "desktop-file-utils";
      buildScript = ''
        mkdir -p $out/bin
        echo '#!/bin/sh' > $out/bin/update-desktop-database
        echo 'mkdir -p $out/share/applications/ && ln -s ${./mime-expected.cache} $out/share/applications/mimeinfo.cache' >> $out/bin/update-desktop-database
        chmod +x $out/bin/update-desktop-database
      '';
    };
    nmt.script = ''
      assertFileExists home-path/share/applications/mimeinfo.cache # Check that update-desktop-database created file
      # Check that update-desktop-database file matches expected
      assertFileContent \
      home-path/share/applications/mimeinfo.cache \
        ${./mime-expected.cache}

      assertDirectoryExists home-path/share/mime # Check that update-mime-database created directory
      assertFileExists home-path/share/mime/mime.cache # Check that update-mime-database created file

    '';
  };
}
