# User Acceptance Tests

#### **1. Signup and Login Flow**

#### **1.1. User can Signup with Google Account**

* **Steps to Reproduce:**
  1. Open the app.
  2. Click on "Signup."
  3. Select "Signup with Google."
  4. Complete the Google OAuth process.
* **Expected Result:**
  * User should be redirected to the app front page after successful Google authentication. User profile and chat menu should be shown

#### **1.2. User can Login with Google Account**

* **Steps to Reproduce:**
  1. Open the app.
  2. Make sure the user has signed up with Google
  3. Click on "Login."
  4. Select "Login with Google."
  5. Complete the Google OAuth process.
* **Expected Result:**
  * User should be successfully logged in and redirected to their dashboard.

#### **1.3. User can Signup with Email**

* **Steps to Reproduce:**
  1. Open the app.
  2. Click on "Signup."
  3. Choose "Signup with Email."
  4. Fill in email, password, and any other required fields.
  5. Confirm signup.
* **Expected Result:**
  * User should receive a verification email in their inbox
  * After verification, they should be redirected to the app home page.

#### **1.4. User can Login with Email**

* **Steps to Reproduce:**
  1. Open the app.
  2. Click on "Login."
  3. Enter email and password.
  4. Submit the form.
* **Expected Result:**
  * User should be successfully logged in and redirected to the dashboard.

***

#### **2. Analyses Creation Flow**

#### **2.1. Analysis Creation with Preset**

* **Steps to Reproduce:**
  1. Open the app.
  2. Click on the Analyst chat icon
  3. Select a preset from the available options.
* **Expected Result:**
  * Analysis should be created successfully with predefined steps according to the preset selected.

#### **2.2. Planning Offerings**

* **Steps to Reproduce:**
  1. In a new chat session with an Analyst, ask the Analyst to do something it should comply with ie. `fetch latest news and updates related to #solana`
* **Expected Result:**
  * User should see an outline of a plan that the Analyst will work on the fetch the data

#### **2.3. Planning Correction**

* **Steps to Reproduce:**
  1. After the plan proposal has been made to the user about what the Analyst will do
  2. make correction to the plan in plain text message response, ie. `instead of searching the news about update on Solana, search for Solana bull thesis instead`
* **Expected Result:**
  * User should be able to adjust the plan offering based on given feedback, and the plan should be updated in the next message

#### **2.4. Planning Confirmation Leads to Analysis Steps Being Created**

* **Steps to Reproduce:**
  1. After the plan proposal has been made to user, confirm button should be rendered alongside it.
  2. Click on `confirm` underneath the plan.
* **Expected Result:**
  * The app should automatically create the corresponding steps for the analysis based on the confirmed plan.

***

#### **3. Analyses Followup Flow**

#### **3.1. User can Ask Question That Should be Answerable by the Analysis**

* **Steps to Reproduce:**
  1. Open an existing analysis that’s been created
  2. Ask a question that falls within the scope of the analysis.
* **Expected Result:**
  * The system should generate a relevant response based on the analysis data in chat message

#### **3.2. User can Ask Question Not Answerable by the Analyst; Analyst Offers Alternatives**

* **Steps to Reproduce:**
  1. Open an analysis.
  2. Ask a question that the analysis cannot answer with fetched data.
* **Expected Result:**
  * The analyst should offer alternative suggestions or actions to take.

#### **3.2.1. User can Exit the Plan or Confirm**

* **Steps to Reproduce:**
  1. After receiving alternatives, choose to exit the analysis or confirm changes.
* **Expected Result:**
  * User exits or continues based on their choice.

#### **3.3. User can Delete Existing Analysis Step or Entire Analysis**

* **Steps to Reproduce:**
  1. Open a chat session with at least one analysis steps
  2. Select a step or the entire analysis.
  3. Click "Delete."
* **Expected Result:**
  * The selected step or entire analysis should be deleted, and the system should update accordingly.

#### **3.4. User can Edit the Response by the LLM**

* **Steps to Reproduce:**
  1. View an LLM-generated response in an analysis.
  2. Click "Edit.", and provide a natural language feedback on how Analyst should edit the text
  3. Make changes and save.
* **Expected Result:**
  * The edited response should be updated and saved in the analysis.

***

#### **4. Analysis Preset Creations Flow**

#### **4.1. User can Take an Existing Analysis and Turn it into a Preset**

* **Steps to Reproduce:**
  1. Open an existing analysis session
  2. Underneath one of the analysis, look for a preset button
  3. Click on the "Create Preset" button.
* **Expected Result:**
  * The analysis should be saved as a preset and appear in the list of available presets in new chat session

#### **4.2. User can Pin or Unpin Presets**

* **Steps to Reproduce:**
  1. View the list of presets. in a new chat session
  2. Click on "Pin" or "Unpin" next to any preset.
* **Expected Result:**
  * The preset should be pinned or unpinned based on the action taken.

#### **4.3. User can Edit Preset**

* **Steps to Reproduce:**
  1. Select a preset.
  2. Click an "Edit." icon
  3. Make changes in the prompt and save.
* **Expected Result:**
  * The preset should be updated with the new changes.

#### **4.4. User can Delete Preset**

* **Steps to Reproduce:**
  1. Select a preset.
  2. Click "Delete."
* **Expected Result:**
  * The preset should be deleted and removed from the list.

#### **4.5. User can Create a Preset from Scratch**

* **Steps to Reproduce:**
  1. Click "Create Preset." + icon from new chat session
  2. Enter details for the new preset.
  3. Save the preset.
* **Expected Result:**
  * A new preset should be created and listed among the available presets.

***

#### **5. Bookmarks Flow**

#### **5.1. For Existing Private Posts**

* **Steps to Reproduce:**
  1. Go to home page, and look under section where posts are created by you and is private
  2. View a private post.
  3. Click the "Bookmark" button.
* **Expected Result:**
  * The post should be saved to the user’s bookmarks for future reference.

***

#### **6. Analyses From Post Flow**

#### **6.1. User can Take Analysis Message or Analyst Response and Publish Private Article**

* **Steps to Reproduce:**
  1. Select an analysis or analyst response message in the chat session
  2. Click "Post" and choose to publish privately.
* **Expected Result:**
  * The article should be published privately and not visible to non-logged-in users.

#### **6.2. User can Take Analysis Message or Analyst Response and Publish Public Article**

* **Steps to Reproduce:**
  1. Select an analysis or analyst response.
  2. Click "Post" and choose to publish publicly.
* **Expected Result:**
  * The article should be published and visible to all users, including non-logged-in users.

#### **6.3. Another Logged-in User Can Start Analysis from an Article**

* **Steps to Reproduce:**
  1. Visit a public article as another logged-in user.
  2. Click "Analyze with Analyst."
* **Expected Result:**
  * A new analysis session should be created using the article content as the first message, with an established workspace for follow-up.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.exponent.ai/internal-qa/engineering-qa-checklist/user-acceptance-tests.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
