package taskname_test import ( "os" "testing" "github.com/stretchr/testify/require" "github.com/coder/coder/v2/coderd/taskname" "github.com/coder/coder/v2/codersdk" "github.com/coder/coder/v2/testutil" ) const ( anthropicEnvVar = "ANTHROPIC_API_KEY" ) func TestGenerateTaskName(t *testing.T) { t.Parallel() t.Run("Fallback", func(t *testing.T) { t.Parallel() ctx := testutil.Context(t, testutil.WaitShort) name, err := taskname.Generate(ctx, "Some random prompt") require.ErrorIs(t, err, taskname.ErrNoAPIKey) require.Equal(t, "", name) }) t.Run("Anthropic", func(t *testing.T) { t.Parallel() apiKey := os.Getenv(anthropicEnvVar) if apiKey == "" { t.Skipf("Skipping test as %s not set", anthropicEnvVar) } ctx := testutil.Context(t, testutil.WaitShort) name, err := taskname.Generate(ctx, "Create a finance planning app", taskname.WithAPIKey(apiKey)) require.NoError(t, err) require.NotEqual(t, "", name) err = codersdk.NameValid(name) require.NoError(t, err, "name should be valid") }) }