All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dev.soffa.foundation.test.KarateTestHelper Maven / Gradle / Ivy

There is a newer version: 0.17.31
Show newest version
package dev.soffa.foundation.test;

import com.google.gson.Gson;
import com.intuit.karate.junit5.Karate;
import org.checkerframework.com.google.common.collect.ImmutableMap;

import java.util.Arrays;
import java.util.Map;
import java.util.Optional;

public final class KarateTestHelper {

    private static final Gson GSON = new Gson();

    public static Karate create(String... paths) {
        return create("test", null, paths);
    }

    public static Karate create(Map config, String... paths) {
        return create("test", config, paths);
    }

    public static Karate create(String env, Map config, String... paths) {
        return Karate.run(feature(paths))
            .systemProperty("config", GSON.toJson(Optional.ofNullable(config).orElse(ImmutableMap.of())))
            .karateEnv(env);
        //.clientFactory(new MockSpringMvcServlet(mvc));
    }

    private static String[] feature(String... paths) {
        return Arrays.stream(paths).map(KarateTestHelper::feature).toArray(String[]::new);
    }

    public static String feature(String path) {
        if (path.endsWith(".feature")) {
            return path;
        }
        return "classpath:feature/" + path + ".feature";
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy