@Test
    public void testReloadConfig(@TempDir Path tempDir) throws IOException {
        TestPluginProvider.use(tempDir, (app, bootstrap, plugin) -> {
            String server = plugin.getConfiguration().get(ConfigKeys.SERVER);
            assertEquals("global", server);

            Integer syncTime = plugin.getConfiguration().get(ConfigKeys.SYNC_TIME);
            assertEquals(-1, syncTime);

            Path config = tempDir.resolve("config.yml");
            assertTrue(Files.exists(config));

            String configString = Files.readString(config)
                    .replace("server: global", "server: test")
                    .replace("sync-minutes: -1", "sync-minutes: 10");
            Files.writeString(config, configString);

            plugin.getConfiguration().reload();

            server = plugin.getConfiguration().get(ConfigKeys.SERVER);
            assertEquals("test", server); // changed

            syncTime = plugin.getConfiguration().get(ConfigKeys.SYNC_TIME);
            assertEquals(-1, syncTime); // unchanged
        });
    }
A set of 'integration tests' for the standalone LuckPerms app.
standalone/src/test/java/me/lucko/luckperms/standalone/IntegrationTest.java