package cmdpacks_test

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestModPB_Copy(t *testing.T) {
	t.Run("copy 1", func(t *testing.T) {
		svc := newService(t)

		_, err := svc.CommandController.ExecuteAndWait(t.Context(), `
			items = @resultset.Items
			skItems = $items | map { |i| $i.sk } | lists:uniq
			pb:copy ($skItems | strs:join "\n")
		`)
		assert.NoError(t, err)

		assert.Equal(t, "111\n222\n131", svc.pasteboard.content)
	})

	t.Run("copy 2", func(t *testing.T) {
		svc := newService(t)

		_, err := svc.CommandController.ExecuteAndWait(t.Context(), `
			items = @resultset.Items
			skItems = $items | map { |i| $i.alpha } | filter !nil | lists:uniq
			pb:copy ($skItems | strs:join "\n")
		`)
		assert.NoError(t, err)

		assert.Equal(t, "This is some value\nThis is another some value", svc.pasteboard.content)
	})
}
