package com.coffeelint.utils; import com.coffeelint.TestUtils; import com.coffeelint.cli.CoffeeLintRunner; import com.coffeelint.cli.LintResult; import com.intellij.execution.ExecutionException; import org.junit.Test; import static org.junit.Assert.assertEquals; public class CoffeeLintRunnerTest { public static final String NODE_INTERPRETER = "/usr/local/bin/node"; public static final String COFFEE_LINT_BIN = "/usr/local/bin/coffeelint"; // public static final String COFFEE_LINT_PLUGIN_ROOT = "/Users/idok/Projects/coffee-lint-plugin"; // public static final String TEST_DATA = COFFEE_LINT_PLUGIN_ROOT + "/testData"; public static final String TEST_DATA = TestUtils.getTestDataPath(); private static CoffeeLintRunner.CoffeeLintSettings createSettings(String targetFile) { return CoffeeLintRunner.buildSettings(TEST_DATA, targetFile, NODE_INTERPRETER, COFFEE_LINT_BIN, "", "", null); } private static CoffeeLintRunner.CoffeeLintSettings createSettings() { return createSettings(""); } // @Test(expected = ExecutionException.class) // public void expectExecutionException() throws ExecutionException { // CoffeeLintRunner.CoffeeLintSettings settings = createSettings(COFFEE_LINT_PLUGIN_ROOT + "/testData/eq.js"); // ProcessOutput out = CoffeeLintRunner.lint(settings); // System.out.println(settings); // System.out.println(out.getStdout()); // System.out.println(out.getStderr()); // assertEquals("10 x 5 must be 50", 1, out.getExitCode()); // } @Test public void testSimpleLint() { CoffeeLintRunner.CoffeeLintSettings settings = createSettings(TEST_DATA + "/inspections/camel_case_classes.coffee"); LintResult out; // try { out = CoffeeLintRunner.lint(settings); // System.out.println(settings); System.out.println(out.errorOutput); assertEquals("Exit code should be 1", 1, out.coffeeLint.file.errors.size()); // } catch (ExecutionException e) { // e.printStackTrace(); // } } @Test public void testLintWithConfig() { CoffeeLintRunner.CoffeeLintSettings settings = createSettings(TEST_DATA + "/unit/camel_case_classes.coffee"); settings.config = TEST_DATA + "/unit/coffeelint.json"; LintResult out = CoffeeLintRunner.lint(settings); assertEquals("Should have 1 lint error", 0, out.coffeeLint.file.errors.size()); } @Test public void testVersion() { CoffeeLintRunner.CoffeeLintSettings settings = createSettings(); try { String out = CoffeeLintRunner.runVersion(settings); System.out.println(out); assertEquals("version should be", "1.9.2", out); } catch (ExecutionException e) { e.printStackTrace(); } } }