Cucumber Ltd / cucumber-pro

Manage collaboratorsfeatures/collaborate/manage_collaborators.feature

Release Dasher II (patch 1) (2018-12-13)

Romain Gérard

Currently viewing

Feature: Manage collaborators

It should be easy to see, add, and remove collaborators from your project.

Rules

  • There must be at least one collaborator at all times
  • invitations are not tied to an email address - the invitation email is just a key to give you access to a project. It should be possible to sign in / up with another email whilst accepting a project invite.
  • people receiving a project invitation have to explicitly accept it by clicking a button on the UI once they've logged in / signed up

Scenario: See yourself as a collaborator

  • Given Bob has created a private project called personal-project
  • Then Bob should be a collaborator of personal-project

Scenario: Invite an existing user to collaborate on a project

  • Given Alice has an account with email address [email protected]
  • And Bob has created a private project called shared-project
  • When Bob invites [email protected] to collaborate on shared-project
  • Then Bob should see [email protected] among the invitations to shared-project
  • And [email protected] should receive an invitation from Bob to collaborate on shared-project

Scenario: Invite a new user to collaborate on a project

  • Given Bob has created a private project called shared-project
  • When Bob invites [email protected] to collaborate on shared-project
  • Then Bob should see [email protected] among the invitations to shared-project
  • And [email protected] should receive an invitation from Bob to collaborate on shared-project

Scenario: Logged in user accepts project invitation from email

  • Given Bob has created a private project called shared-project
  • And Alice has an account with email address [email protected]
  • And Bob has invited [email protected] to be a collaborator on shared-project
  • When Alice accepts the invitation from Bob to collaborate on shared-project
  • Then Alice should be a collaborator of shared-project
  • And Bob should see [email protected] among the collaborators of shared-project
  • And Bob should not see [email protected] among the invitations to shared-project

Scenario: Logged out user accepts project invitation after logging in

  • Given Bob has created a private project called shared-project
  • And Alice has an account with email address [email protected]
  • And Alice is logged out
  • And Bob has invited [email protected] to be a collaborator on shared-project
  • And Alice has opened the invitation from Bob to collaborate on shared-project
  • When Alice logs in to join the project
  • Then Alice should be able to join the shared-project project
  • @flicker

Scenario: New user signs up to accept project invitation from email

  • @todo

Scenario: Accept an invitation a second time

    • @todo

    Scenario: Remove an existing collaborator

    • Given Bob has an account with email address [email protected]
    • And Alice has an account with email address [email protected]
    • And Bob has created a private project called shared-project
    • And Bob made [email protected] a collaborator on shared-project
    • When Alice removes [email protected] from shared-project's collaborators
    • Then Bob should not be a collaborator of shared-project
    • And Alice should not see [email protected] among the collaborators of shared-project

    Scenario: Not allowed to remove the last collaborator

    • Given Bob has an account with email address [email protected]
    • And Bob has created a private project called bobs-project
    • When Bob tries to remove [email protected] from bobs-project's collaborators
    • Then Bob should be told that the project must have at least one collaborator
    • And Bob should be a collaborator of bobs-project
    • @todo

    Scenario: Resend invitation

      • @todo

      Scenario: Remove invitation