(t *testing.T)
| 286 | } |
| 287 | |
| 288 | func TestTeamRemoveMemberJSONOutputsMutationResult(t *testing.T) { |
| 289 | var gotArg *team.MembersRemoveArg |
| 290 | stubTeamClient(t, &mockTeamClient{ |
| 291 | membersRemoveFn: func(arg *team.MembersRemoveArg) (*async.LaunchEmptyResult, error) { |
| 292 | gotArg = arg |
| 293 | return &async.LaunchEmptyResult{Tagged: dropbox.Tagged{Tag: "complete"}}, nil |
| 294 | }, |
| 295 | }) |
| 296 | |
| 297 | cmd, stdout := teamTestCmd(t, true) |
| 298 | if err := removeMember(cmd, []string{"old@example.com"}); err != nil { |
| 299 | t.Fatalf("removeMember error: %v", err) |
| 300 | } |
| 301 | if gotArg == nil || gotArg.User == nil || gotArg.User.Tag != "email" || gotArg.User.Email != "old@example.com" { |
| 302 | t.Fatalf("MembersRemove arg = %#v, want email selector", gotArg) |
| 303 | } |
| 304 | |
| 305 | got := decodeTeamOperationOutput[teamMemberRemoveInput, teamMemberMutationJSON](t, stdout.Bytes()) |
| 306 | if got.Input.Email != "old@example.com" { |
| 307 | t.Fatalf("input = %#v, want remove input", got.Input) |
| 308 | } |
| 309 | result := onlyTeamResult(t, got) |
| 310 | if result.Status != teamJSONStatusRemoved || result.Kind != teamJSONKindTeamMember { |
| 311 | t.Fatalf("operation result = %#v, want removed team_member", result) |
| 312 | } |
| 313 | if result.Result.Type != teamJSONTypeMemberRemove || result.Result.Tag != "complete" { |
| 314 | t.Fatalf("mutation result = %#v, want complete remove result", result.Result) |
| 315 | } |
| 316 | } |
| 317 | |
| 318 | func TestTeamAddMemberErrorIncludesEmailDetails(t *testing.T) { |
| 319 | stubTeamClient(t, &mockTeamClient{ |
nothing calls this directly
no test coverage detected