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

package fourslash_test

import (
	"testing"

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

func TestQuickinfoVerbosityMappedType(t *testing.T) {
	fourslash.SkipIfFailing(t)
	t.Parallel()
	defer testutil.RecoverAndFail(t, "Panic on fourslash test")
	const content = `type Apple = boolean | number;
type Orange = string | boolean;
type F<T> = {
	[K in keyof T as T[K] extends Apple ? never : K]: T[K];
}
type Bar = {
	banana: string;
	apple: boolean;
}
const x/*x*/: F/*F*/<Bar> = { banana: 'hello' };
const y/*y*/: { [K in keyof Bar]?: Bar[K] } = { banana: 'hello' };
type G<T> = {
	[K in keyof T]: T[K] & Apple
};
const z: G/*G*/<Bar> = { banana: 'hello', apple: true };`
	f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content)
	defer done()
	f.VerifyBaselineHoverWithVerbosity(t, map[string][]int{"x": {0, 1}, "y": {0}, "F": {0, 1}, "G": {0, 1}})
}
