package main import ( "context" "testing" "github.com/fleetdm/fleet/v4/server/fleet" "github.com/stretchr/testify/assert" ) func TestDeleteLabel(t *testing.T) { _, ds := runServerWithMockedDS(t) var deletedLabel string ds.DeleteLabelFunc = func(ctx context.Context, name string) error { deletedLabel = name return nil } name := writeTmpYml(t, `--- apiVersion: v1 kind: label spec: name: pending_updates query: select 1; platforms: - darwin `) assert.Equal(t, "", runAppForTest(t, []string{"delete", "-f", name})) assert.True(t, ds.DeleteLabelFuncInvoked) assert.Equal(t, "pending_updates", deletedLabel) } func TestDeletePack(t *testing.T) { _, ds := runServerWithMockedDS(t) var deletedPack string ds.DeletePackFunc = func(ctx context.Context, name string) error { deletedPack = name return nil } ds.PackByNameFunc = func(ctx context.Context, name string, opts ...fleet.OptionalArg) (*fleet.Pack, bool, error) { if name != "pack1" { return nil, false, nil } return &fleet.Pack{ ID: 7, Name: "pack1", Description: "some desc", Platform: "darwin", Disabled: false, }, true, nil } ds.NewActivityFunc = func(ctx context.Context, user *fleet.User, activityType string, details *map[string]interface{}) error { return nil } name := writeTmpYml(t, `--- apiVersion: v1 kind: pack spec: description: some desc disabled: false id: 7 name: pack1 platform: darwin targets: labels: null `) assert.Equal(t, "", runAppForTest(t, []string{"delete", "-f", name})) assert.True(t, ds.DeletePackFuncInvoked) assert.Equal(t, "pack1", deletedPack) } func TestDeleteQuery(t *testing.T) { _, ds := runServerWithMockedDS(t) var deletedQuery string ds.DeleteQueryFunc = func(ctx context.Context, name string) error { deletedQuery = name return nil } ds.QueryByNameFunc = func(ctx context.Context, name string, opts ...fleet.OptionalArg) (*fleet.Query, error) { if name != "query1" { return nil, nil } return &fleet.Query{ ID: 33, Name: "query1", Description: "some desc", Query: "select 1;", Saved: false, ObserverCanRun: false, }, nil } ds.NewActivityFunc = func(ctx context.Context, user *fleet.User, activityType string, details *map[string]interface{}) error { return nil } name := writeTmpYml(t, `--- apiVersion: v1 kind: query spec: description: some desc name: query1 query: select 1; `) assert.Equal(t, "", runAppForTest(t, []string{"delete", "-f", name})) assert.True(t, ds.DeleteQueryFuncInvoked) assert.Equal(t, "query1", deletedQuery) }