Refactor sign_in_spec

Use shared_context and shared_examples to DRY up sign_in_spec