1. Basic functionality

 - be logged out
 - navigate to notebook.hail.is
 - you will be prompted to log in
 - launch Jupyter
 - connect to Jupyter
 - open a notebook
 - verify kernel works, evaluate e.g. 1 + 1
 - close notebook (click x)
 - verify pod is deleted
 - log out

2. Notebook Error

A.  Deleted pod

 - create a noteobok
 - delete the notebook pod
 - connect to Jupyter
 - it should open a new tab
 - it sholud return to notebook.hail.is/notebook with an error and the
   launch Jupyter button

B.  Frozen pod

 - launch Jupyter
 - log into the k8s node running the pod
 - docker pause <container id>
 - connect to Jupyter
 - it should create a second tab
 - let nginx gateway time out
 - it should return to notebook.hail.is/noebook with an error, the
   notebook should be in the Initializing state
 - docker unpause <container id>
 - state should transition to ready

3. Workshop Admin

 - log in with a developer account
 - navigate to Notebook > Workshop Admin
 - create new workshop
 - create new workshop with name of existing workshop
 - update workshop changing all fields
 - delete workshop
 - delete non-existent workshop

4.  Workshop

A. Basic functionality

 - navigate to workshop.hail.is
 - welcome text should be shown
 - log in with an invalid workshop
 - log in with an invalid password
 - log in with a valid workshop/password that is not active
 - each should return you to the login page with an error message
 - log in with valid workshop and password
 - you should be redirected to workshop.hail.is/notebook with success message and the launch Jupyter button
 - log out

 - in addition, 1. and 2. should be repeated in workshop.hail.is

B.  Deactivate workshop

i.  Launch Jupyter

 - log into an active workshop
 - deactivate the workshop in another tab
 - launch Jupyter
 - you should be redirected to workshop/login

ii.  Connect to Jupyter

 - log into an active workshop
 - launch Jupyter
 - deactivate the workshop in another tab
 - connect to Jupyer
 - you should be redirected to workshop/login
