import { App } from "../app"; import { Options, printDuration, run, step } from "../helpers"; const remove = async ( integration: App, user: User, collaboratorToRemove: { email: string }, options: Options, ) => { options.log( `Removing ${collaboratorToRemove.email} from ${integration.name}`, ); const startTime = new Date().getTime(); await run( integration, user, async (page, context) => { await step( () => integration.removeCollaborator(collaboratorToRemove, page, context), "Removing the user", "Removed the user", options, ); await step( async () => { const collaborators = await integration.listCollaborators( page, context, ); if ( collaborators.some( (collaborator) => collaborator.email === collaboratorToRemove.email, ) ) { throw `Collaborator ${collaboratorToRemove.email} wasn't removed`; } }, "Verifying that the user has been removed", "Verified that the user has been removed", options, ); options.log( `Removed ${collaboratorToRemove.email}${options.noTimer ? "" : ` - ${printDuration(new Date().getTime() - startTime)}`}`, ); }, options, ); }; export default remove;