public String secretTokenString() { return secretTokenString; }
@Test
    void token_generator_generates_new_tokens() {
        var t1 = TokenGenerator.generateToken(TEST_DOMAIN, "foo_", 16);
        var t2 = TokenGenerator.generateToken(TEST_DOMAIN, "foo_", 16);
        // The space of possible generated tokens is effectively infinite, so we'll
        // pragmatically round down infinity to 2...!
        assertNotEquals(t1, t2);
        assertTrue(t1.secretTokenString().startsWith("foo_"));
        assertTrue(t2.secretTokenString().startsWith("foo_"));
        // Token sizes are always greater than their raw binary size due to base62-encoding
        assertTrue(t1.secretTokenString().length() > 20);
        assertTrue(t2.secretTokenString().length() > 20);
    }