package com.google.jstestdriver.idea.assertFramework.qunit; import com.google.jstestdriver.idea.assertFramework.qunit.jsSrc.QUnitAdapterSrcMarker; import com.google.jstestdriver.idea.assertFramework.support.AbstractAddAdapterSupportInspection; import com.google.jstestdriver.idea.util.VfsUtils; import com.intellij.javascript.testFramework.qunit.QUnitFileStructure; import com.intellij.javascript.testFramework.qunit.QUnitFileStructureBuilder; 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 QUnitAdapterSupportInspection extends AbstractAddAdapterSupportInspection { public QUnitAdapterSupportInspection() { super( "QUnit", () -> { String[] relativePaths = new String[]{"equiv.js", "QUnitAdapter.js"}; return VfsUtils.findVirtualFilesByResourceNames(QUnitAdapterSrcMarker.class, relativePaths); }, "https://github.com/exnor/QUnit-to-JsTestDriver-adapter" ); } @Override protected boolean isSuitableElement(@NotNull JSFile jsFile, @NotNull JSCallExpression callExpression) { QUnitFileStructure structure = QUnitFileStructureBuilder.getInstance().fetchCachedTestFileStructure(jsFile); String name = structure.getNameByPsiElement(callExpression); return name != null; } }