package com.jscs.utils;
import com.intellij.execution.ExecutionException;
import com.jscs.cli.JscsRunner;
import com.jscs.cli.JscsSettings;
import com.jscs.cli.data.JscsLint;
import com.jscs.cli.data.LintResult;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class JscsRunnerTest {
public static final String NODE_INTERPRETER = "/usr/local/bin/node";
public static final String JSCS_BIN = "/usr/local/bin/jscs";
public static final String JSCS_PLUGIN_ROOT = "/Users/idok/Projects/jscs-plugin";
private static JscsSettings createSettings(String targetFile) {
return JscsSettings.build(JSCS_PLUGIN_ROOT + "/testData", targetFile, NODE_INTERPRETER, JSCS_BIN, "", "", "", false);
}
private static JscsSettings createSettings() {
return createSettings("");
}
// @Test
// public void testSimpleLint() {
// JscsSettings settings = createSettings(JSCS_PLUGIN_ROOT + "/testData/eq.js");
// ProcessOutput out;
// try {
// out = JscsRunner.lint(settings);
//// System.out.println(settings);
// System.out.println(out.getStdout());
// assertEquals("Exit code should be 1", 1, out.getExitCode());
// } catch (ExecutionException e) {
// e.printStackTrace();
// }
// }
@Test
public void testSimpleLint2() {
JscsSettings settings = createSettings(JSCS_PLUGIN_ROOT + "/testData/test.js");
LintResult result = JscsRunner.lint(settings);
System.out.println(result.errorOutput);
System.out.println(result.jscsLint.file.name);
System.out.println("found " + result.jscsLint.file.errors.size() + " issues");
for (JscsLint.Issue err : result.jscsLint.file.errors) {
System.out.println(err.message);
}
assertEquals("Exit code should be 1", JSCS_PLUGIN_ROOT + "/testData/test.js", result.jscsLint.file.name);
}
@Test
public void testSimpleLintES6() {
String file = JSCS_PLUGIN_ROOT + "/testData/es6.js";
JscsSettings settings = createSettings(file);
settings.esnext = true;
LintResult result = JscsRunner.lint(settings);
System.out.println(result.errorOutput);
System.out.println(result.jscsLint.file.name);
System.out.println("found " + result.jscsLint.file.errors.size() + " issues");
for (JscsLint.Issue err : result.jscsLint.file.errors) {
System.out.println(err.message);
}
assertEquals("File should match", file, result.jscsLint.file.name);
assertEquals("Should be no errors", 0, result.jscsLint.file.errors.size());
}
@Test
public void testSimpleLintJSX() {
String file = JSCS_PLUGIN_ROOT + "/testData/jsx.js";
JscsSettings settings = createSettings(file);
settings.esprima = "esprima-fb";
LintResult result = JscsRunner.lint(settings);
System.out.println(result.errorOutput);
System.out.println(result.jscsLint.file.name);
System.out.println("found " + result.jscsLint.file.errors.size() + " issues");
for (JscsLint.Issue err : result.jscsLint.file.errors) {
System.out.println(err.message);
}
assertEquals("File should match", file, result.jscsLint.file.name);
assertEquals("Should be no errors", 0, result.jscsLint.file.errors.size());
}
@Test
public void testVersion() {
JscsSettings settings = createSettings();
try {
String version = JscsRunner.version(settings);
assertEquals("version should be", "1.6.1", version);
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}