> For the complete documentation index, see [llms.txt](https://docs.exponent.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.exponent.ai/internal-qa/engineering-qa-checklist/user-acceptance-tests.md).

# 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.
