// Code generated by convertFourslash; DO NOT EDIT.
// To modify this test, run "npm run makemanual importNameCodeFix_all_promoteType"

package fourslash_test

import (
	"testing"

	"github.com/microsoft/typescript-go/internal/fourslash"
	"github.com/microsoft/typescript-go/internal/testutil"
)

func TestImportNameCodeFix_all_promoteType(t *testing.T) {
	fourslash.SkipIfFailing(t)
	t.Parallel()
	defer testutil.RecoverAndFail(t, "Panic on fourslash test")
	const content = `// @Filename: /a.ts
export class A {}
export class B {}
export class C {}
export class D {}
export class E {}
export class F {}
export class G {}
// @Filename: /b.ts
import type { A, C, D, E, G } from './a';
type Z = B | A;
new F;
// @Filename: /c.ts
import type { A, C, D, E, G } from './a';
type Z = B | A;
type Y = F;`
	f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content)
	defer done()
	f.GoToFile(t, "/b.ts")
	f.VerifyCodeFixAll(t, fourslash.VerifyCodeFixAllOptions{
		FixID: "fixMissingImport",
		NewFileContent: `import { B, F, type A, type C, type D, type E, type G } from './a';
type Z = B | A;
new F;`,
	})
	f.GoToFile(t, "/c.ts")
	f.VerifyCodeFixAll(t, fourslash.VerifyCodeFixAllOptions{
		FixID: "fixMissingImport",
		NewFileContent: `import type { A, B, C, D, E, F, G } from './a';
type Z = B | A;
type Y = F;`,
	})
}
