diff --git a/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition01-input.svelte b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition01-input.svelte
new file mode 100644
index 00000000..0cbde574
--- /dev/null
+++ b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition01-input.svelte
@@ -0,0 +1,10 @@
+
diff --git a/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition01-output.json b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition01-output.json
new file mode 100644
index 00000000..e998aae6
--- /dev/null
+++ b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition01-output.json
@@ -0,0 +1,16 @@
+[
+ {
+ "ruleId": "@typescript-eslint/no-unnecessary-condition",
+ "code": "foo == null",
+ "line": 4,
+ "column": 15,
+ "message": "Unnecessary conditional, both sides of the expression are literal values."
+ },
+ {
+ "ruleId": "@typescript-eslint/no-unnecessary-condition",
+ "code": "bar == null",
+ "line": 8,
+ "column": 13,
+ "message": "Unnecessary conditional, both sides of the expression are literal values."
+ }
+]
\ No newline at end of file
diff --git a/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition01-setup.ts b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition01-setup.ts
new file mode 100644
index 00000000..92947a97
--- /dev/null
+++ b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition01-setup.ts
@@ -0,0 +1,24 @@
+/* eslint eslint-comments/require-description: 0, @typescript-eslint/explicit-module-boundary-types: 0 */
+import type { Linter } from "eslint";
+import { BASIC_PARSER_OPTIONS } from "../../../src/parser/test-utils";
+import { rules } from "@typescript-eslint/eslint-plugin";
+export function setupLinter(linter: Linter) {
+ linter.defineRule(
+ "@typescript-eslint/no-unnecessary-condition",
+ rules["no-unnecessary-condition"] as never
+ );
+}
+
+export function getConfig() {
+ return {
+ parser: "svelte-eslint-parser",
+ parserOptions: BASIC_PARSER_OPTIONS,
+ rules: {
+ "@typescript-eslint/no-unnecessary-condition": "error",
+ },
+ env: {
+ browser: true,
+ es2021: true,
+ },
+ };
+}
diff --git a/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition02-input.svelte b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition02-input.svelte
new file mode 100644
index 00000000..97e29e59
--- /dev/null
+++ b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition02-input.svelte
@@ -0,0 +1,11 @@
+
diff --git a/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition02-output.json b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition02-output.json
new file mode 100644
index 00000000..cb04666c
--- /dev/null
+++ b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition02-output.json
@@ -0,0 +1,16 @@
+[
+ {
+ "ruleId": "@typescript-eslint/no-unnecessary-condition",
+ "code": "foo",
+ "line": 5,
+ "column": 15,
+ "message": "Unnecessary conditional, left-hand side of `??` operator is always `null` or `undefined`."
+ },
+ {
+ "ruleId": "@typescript-eslint/no-unnecessary-condition",
+ "code": "baz",
+ "line": 9,
+ "column": 13,
+ "message": "Unnecessary conditional, left-hand side of `??` operator is always `null` or `undefined`."
+ }
+]
\ No newline at end of file
diff --git a/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition02-setup.ts b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition02-setup.ts
new file mode 100644
index 00000000..3ba264cf
--- /dev/null
+++ b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition02-setup.ts
@@ -0,0 +1,2 @@
+/* eslint eslint-comments/require-description: 0, @typescript-eslint/explicit-module-boundary-types: 0 */
+export * from "./no-unnecessary-condition01-setup";
diff --git a/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition03-input.svelte b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition03-input.svelte
new file mode 100644
index 00000000..42598ff2
--- /dev/null
+++ b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition03-input.svelte
@@ -0,0 +1,10 @@
+
\ No newline at end of file
diff --git a/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition03-output.json b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition03-output.json
new file mode 100644
index 00000000..cc333254
--- /dev/null
+++ b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition03-output.json
@@ -0,0 +1,16 @@
+[
+ {
+ "ruleId": "@typescript-eslint/no-unnecessary-condition",
+ "code": "?.",
+ "line": 4,
+ "column": 18,
+ "message": "Unnecessary optional chain on a non-nullish value."
+ },
+ {
+ "ruleId": "@typescript-eslint/no-unnecessary-condition",
+ "code": "?.",
+ "line": 8,
+ "column": 16,
+ "message": "Unnecessary optional chain on a non-nullish value."
+ }
+]
\ No newline at end of file
diff --git a/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition03-setup.ts b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition03-setup.ts
new file mode 100644
index 00000000..3ba264cf
--- /dev/null
+++ b/tests/fixtures/integrations/type-info-tests/no-unnecessary-condition03-setup.ts
@@ -0,0 +1,2 @@
+/* eslint eslint-comments/require-description: 0, @typescript-eslint/explicit-module-boundary-types: 0 */
+export * from "./no-unnecessary-condition01-setup";