package com.google.jstestdriver.idea.assertFramework.jasmine;
import com.google.jstestdriver.idea.assertFramework.jasmine.jsSrc.JasmineAdapterSrcMarker;
import com.google.jstestdriver.idea.assertFramework.support.AbstractAddAdapterSupportInspection;
import com.google.jstestdriver.idea.util.VfsUtils;
import com.intellij.javascript.testFramework.jasmine.JasmineFileStructure;
import com.intellij.javascript.testFramework.jasmine.JasmineFileStructureBuilder;
import com.intellij.lang.javascript.psi.JSCallExpression;
import com.intellij.lang.javascript.psi.JSFile;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.NotNullProducer;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class JasmineAdapterSupportInspection extends AbstractAddAdapterSupportInspection {
public JasmineAdapterSupportInspection() {
super(
"Jasmine",
() -> {
String[] relativePaths = new String[]{"jasmine-1.1.0.js", "JasmineAdapter-1.1.2.js"};
return VfsUtils.findVirtualFilesByResourceNames(JasmineAdapterSrcMarker.class, relativePaths);
},
"https://github.com/ibolmo/jasmine-jstd-adapter"
);
}
@Override
protected boolean isSuitableElement(@NotNull JSFile jsFile, @NotNull JSCallExpression callExpression) {
JasmineFileStructure structure = JasmineFileStructureBuilder.getInstance().fetchCachedTestFileStructure(jsFile);
return structure.containsCallExpression(callExpression);
}
}