tvl-depot/users/sterni/mblog/golden/default.nix
sterni b8e4da856f test(sterni/mblog/golden): check mblog against expected output
This should allow for refactors with more confidence as we can make sure
base functionality stays the same. It is important to test image
extraction, so unfortunately we need to check in a base64 rendering of
an image file. I've used //users/tvlbot.jpg, so git should at least be
able to deduplicate the extracted content. Note that this was achieved
by altering the note message since I wasn't able to add the picture in
the iOS Notes.app without the image being recompressed.

To get extra benefit, we also add the test note to the mime4cl test suite.

The expected output can be updated with

    mblog $(mg build :maildir) expected

Change-Id: I0aa493b206439018ad89745bacbd47af78bd1396
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12911
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
2024-12-26 12:59:03 +00:00

41 lines
1.1 KiB
Nix

# SPDX-License-Identifier: GPL-3.0-only
# SPDX-FileCopyrightText: Copyright (C) 2024 by sterni
{ depot, pkgs, lib, ... }:
let
maildir = pkgs.runCommandNoCC "mblog-golden-example-maildir" { } ''
mkdir -p "$out/cur"
cp --reflink=auto \
"${depot.path.origSrc + "/third_party/lisp/mime4cl/test/samples/mail-note.msg"}" \
"$out/cur/1732277542.274467_1.wolfgang,U=1:2,S"
'';
# Make golden test based on the given mblog derivation and add subtarget
# golden tests for all meta.ci.targets.
makeGoldenTest = mblog:
pkgs.runCommand "mblog-golden-tests"
{
passthru = {
inherit maildir;
} // lib.mapAttrs (_: makeGoldenTest) (
lib.attrsets.getAttrs mblog.meta.ci.targets mblog
);
nativeBuildInputs = [
mblog
];
meta.ci = {
inherit (mblog.meta.ci) targets;
};
}
''
mkdir -p actual
mblog ${maildir} actual
diff --color=always -ru ${./expected} actual
touch "$out"
'';
in
makeGoldenTest depot.users.sterni.mblog