(t *testing.T)
| 679 | } |
| 680 | |
| 681 | func TestAddCopilotRequestsPermissionToContent(t *testing.T) { |
| 682 | t.Run("adds permission to workflow without existing permissions block", func(t *testing.T) { |
| 683 | content := "---\nengine: copilot\n---\nDo the thing.\n" |
| 684 | result, err := addCopilotRequestsPermissionToContent(content) |
| 685 | require.NoError(t, err) |
| 686 | assert.Contains(t, result, "permissions:") |
| 687 | assert.Contains(t, result, "copilot-requests: write") |
| 688 | }) |
| 689 | |
| 690 | t.Run("adds permission to workflow with existing permissions block", func(t *testing.T) { |
| 691 | content := "---\nengine: copilot\npermissions:\n contents: read\n---\nDo the thing.\n" |
| 692 | result, err := addCopilotRequestsPermissionToContent(content) |
| 693 | require.NoError(t, err) |
| 694 | assert.Contains(t, result, "copilot-requests: write") |
| 695 | assert.Contains(t, result, "contents: read") |
| 696 | }) |
| 697 | |
| 698 | t.Run("is idempotent when permission already present", func(t *testing.T) { |
| 699 | content := "---\nengine: copilot\npermissions:\n copilot-requests: write\n---\nDo the thing.\n" |
| 700 | result, err := addCopilotRequestsPermissionToContent(content) |
| 701 | require.NoError(t, err) |
| 702 | count := strings.Count(result, "copilot-requests: write") |
| 703 | assert.Equal(t, 1, count, "copilot-requests: write should appear exactly once") |
| 704 | }) |
| 705 | |
| 706 | t.Run("returns error when permissions is a non-mapping scalar", func(t *testing.T) { |
| 707 | content := "---\nengine: copilot\npermissions: read-all\n---\nDo the thing.\n" |
| 708 | _, err := addCopilotRequestsPermissionToContent(content) |
| 709 | require.Error(t, err) |
| 710 | assert.Contains(t, err.Error(), "non-mapping scalar") |
| 711 | }) |
| 712 | } |
| 713 | |
| 714 | func TestAddWorkflowWithTracking_CopilotRequestsPermission(t *testing.T) { |
| 715 | t.Run("injects copilot-requests permission when option is set", func(t *testing.T) { |
nothing calls this directly
no test coverage detected