blob: de300cf0d6f58c9c4c3a7c2a3c4781a6b73a2d81 [file] [log] [blame]
package io.bazel.kotlin.builder.tasks.js;
import io.bazel.kotlin.builder.DaggerKotlinBuilderComponent;
import io.bazel.kotlin.builder.KotlinBuilderComponent;
import io.bazel.kotlin.builder.KotlinBuilderJsTestTask;
import io.bazel.kotlin.builder.toolchain.KotlinToolchain;
import io.bazel.kotlin.builder.utils.CompilationTaskContext;
import io.bazel.kotlin.model.JsCompilationTask;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import static com.google.common.truth.Truth.assertThat;
@RunWith(JUnit4.class)
public class KotlinBuilderJsTest {
@Rule public KotlinBuilderJsTestTask ctx = new KotlinBuilderJsTestTask();
private static final KotlinBuilderComponent component =
DaggerKotlinBuilderComponent.builder().toolchain(KotlinToolchain.createToolchain()).build();
@Test
public void testSimpleJsCompile() {
ctx.addSource("AClass.kt", "package something", "class AClass{}");
ctx.runCompileTask(this::jsCompilationTask);
}
@Test
public void testJsErrorRendering() {
ctx.addSource("AClass.kt", "package something", "class AClass{");
ctx.runFailingCompileTaskAndValidateOutput(
this::jsCompilationTask,
lines -> assertThat(lines.get(0)).startsWith(ctx.toPlatform("sources/AClass.kt")));
}
private void jsCompilationTask(CompilationTaskContext taskContext, JsCompilationTask task) {
component.jsTaskExecutor().execute(taskContext, task);
String jsFile = task.getOutputs().getJs();
ctx.assertFilesExist(
jsFile,
jsFile + ".map",
jsFile.substring(0, jsFile.length() - 3) + ".meta.js",
task.getOutputs().getJar(),
task.getOutputs().getSrcjar());
}
}