Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix/e2e tests #1061

Merged
merged 45 commits into from
Oct 14, 2024
Merged

Fix/e2e tests #1061

merged 45 commits into from
Oct 14, 2024

Conversation

JohnAllenTech
Copy link
Contributor

✨ Codu Pull Request 💻

Improves #468

Pull Request details

  • E2E Tests back working and no longer flaky.
  • Workflow is a WIP

Any Breaking changes

  • None

Associated Screenshots

image

@JohnAllenTech JohnAllenTech requested a review from a team as a code owner October 3, 2024 23:14
Copy link

vercel bot commented Oct 3, 2024

@JohnAllenTech is attempting to deploy a commit to the Codú Team on Vercel.

A member of the Team first needs to authorize it.

Copy link
Contributor

coderabbitai bot commented Oct 3, 2024

Walkthrough

This pull request introduces significant modifications to the README.md file and the e2e/home.spec.ts test suite. The README.md has been enhanced with clearer installation instructions, new environment variables for end-to-end testing, and a dedicated section for Playwright testing. The e2e/home.spec.ts file has been updated to improve the structure of homepage content verification tests, including renaming existing tests and adding new ones to cover different user states and device types.

Changes

File Change Summary
e2e/home.spec.ts Updated test suite description; renamed existing test case to "Unauthenticated homepage view"; added tests for "Authenticated homepage view" and "Authenticated landing page view".
README.md Enhanced clarity and guidance on installation, configuration, and testing; added new environment variables for E2E testing; introduced a section on "End-to-End Testing with Playwright".

Possibly related PRs

  • fix: update e2e tests for newer changes in site #1085: The changes in e2e/home.spec.ts in this PR relate to the modifications made in the same file in the main PR, as both involve updates to the test suite for homepage content verification.
  • feat: init e2e workflow setup #1086: This PR also involves changes to the end-to-end testing setup, which is relevant to the new section on "End-to-End Testing with Playwright" introduced in the main PR's README.md.

Suggested reviewers

  • NiallJoeMaher

Poem

In the land of code where rabbits play,
Changes hop in, brightening the day.
New tests for views, both logged and free,
With seeds in the ground, our future's a spree.
From mobile to desktop, we leap with delight,
In the garden of tests, everything feels right! 🐇✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Outside diff range and nitpick comments (7)
e2e/login.spec.ts (2)

Line range hint 4-10: Approve navigation step, but note inconsistency in button names.

The addition of the explicit navigation step to the "get-started" page is good. It makes the test more self-contained and easier to understand.

However, there's an inconsistency in the button names between this test case and the second one. Here, it's "Login with GitHub", while in the second test case, it's "Continue with GitHub". This inconsistency should be addressed to ensure the tests are checking for the correct button text.

Consider updating the button name to match the one used in the second test case:

-      name: "Login with GitHub",
+      name: "Continue with GitHub",

Line range hint 12-29: Approve changes, suggest minor formatting adjustment.

The changes in this test case look good:

  1. The explicit navigation to the "get-started" page improves test clarity.
  2. The button name update to "Continue with GitHub" is correct and consistent with the AI summary.
  3. The test logic remains comprehensive, checking for correct navigation and presence of login fields.

Consider removing the empty line at line 16 for consistency with the rest of the file:

  test("should navigate to GitHub login page when clicking the login button", async ({
    page,
  }) => {
    await page.goto("http://localhost:3000/get-started");
-
    const button = page.getByRole("button", {
      name: "Continue with GitHub",
    });
e2e/articles.spec.ts (4)

16-16: Good addition to stabilize the test, consider adding a short wait.

The new line scrolling the "Code Of Conduct" text into view is a good addition to stabilize the test. To further enhance stability, consider adding a short wait after this action to ensure the page has settled before scrolling.

You could modify the line as follows:

await page.getByText("Code Of Conduct").scrollIntoViewIfNeeded();
await page.waitForTimeout(500); // Add a short wait to ensure the page has settled

Line range hint 7-7: Consider using an environment variable for the URL.

Using a hard-coded URL might cause issues when running tests in different environments (e.g., staging, production).

Consider using an environment variable for the base URL:

await page.goto(`${process.env.BASE_URL}/articles`);

Don't forget to set up the BASE_URL environment variable in your test configuration or CI/CD pipeline.


Line range hint 1-30: Add error handling and timeout specifications to improve test reliability.

The test currently lacks error handling and specific timeout settings, which could lead to flakiness in slow network conditions or when unexpected errors occur.

Consider adding try-catch blocks and specific timeout settings:

test("Should load more articles when scrolling to the end of the page", async ({
  page,
}) => {
  try {
    await page.goto("http://localhost:3000/articles", { timeout: 30000 });
    await page.waitForSelector("article", { timeout: 10000 });

    // ... rest of the test code ...

  } catch (error) {
    console.error("Test failed:", error);
    throw error;
  }
});

Also, consider adding test.setTimeout(60000); at the beginning of the test to set a global timeout for this specific test case if needed.


Line range hint 27-28: Make the assertion for article count increase more specific.

The current assertion only checks if the final count is greater than the initial count. This could pass even if only one additional article is loaded, which might not be the expected behavior.

Consider making the assertion more specific:

const expectedMinimumIncrease = 5; // Adjust this number based on your actual requirements
expect(finalArticleCount).toBeGreaterThanOrEqual(initialArticleCount + expectedMinimumIncrease);

This ensures that a minimum number of articles are loaded, making the test more robust and meaningful.

playwright.config.ts (1)

Line range hint 1-82: Overall configuration looks good with room for improvement

The Playwright configuration file demonstrates several good practices:

  1. Using the HTML reporter for detailed test results.
  2. Setting up a webServer configuration to run the dev server before tests.
  3. Providing examples of configurations for different browsers and devices (albeit commented out).

To further improve the configuration:

  1. Consider uncommenting and utilizing more browser configurations (Firefox, WebKit) for broader coverage.
  2. Evaluate if the fullyParallel: true setting is optimal for your specific test suite and CI environment.
  3. Review the retries and workers settings to ensure they align with your team's testing strategy and CI capabilities.

These suggestions can help enhance the robustness and efficiency of your E2E testing setup.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 02e80c0 and 3066351.

⛔ Files ignored due to path filters (3)
  • .github/workflows/playwright.yml is excluded by !**/*.yml
  • package-lock.json is excluded by !**/package-lock.json, !**/*.json
  • package.json is excluded by !**/*.json
📒 Files selected for processing (5)
  • e2e/articles.spec.ts (1 hunks)
  • e2e/home.spec.ts (1 hunks)
  • e2e/login.spec.ts (2 hunks)
  • playwright.config.ts (1 hunks)
  • server/api/router/post.ts (1 hunks)
🔇 Additional comments (3)
e2e/login.spec.ts (1)

Line range hint 1-29: Overall improvements align with PR objectives, minor consistency issue noted.

The changes in this file align well with the PR objectives of fixing and stabilizing E2E tests:

  1. Removal of hooks and addition of explicit navigation steps can help reduce test flakiness and improve test clarity.
  2. The tests cover important aspects of the login functionality, including button presence and navigation to GitHub's login page.

However, there's a minor consistency issue with the button names between the two test cases that should be addressed.

To ensure consistency across the codebase, let's verify the correct button text:

This will help determine which button text is used consistently across the project.

e2e/home.spec.ts (2)

Line range hint 1-45: Overall assessment of e2e/home.spec.ts

The change in this file appears to be in line with the PR objectives of fixing and stabilizing E2E tests. The update to the locator text is the only modification, and it seems appropriate if it reflects a UI change.

The rest of the file remains unchanged and contains well-structured tests for various aspects of the homepage, including content verification and image accessibility checks.


24-24: Verify UI update and consider adding a comment.

The locator text has been updated from "Recommended topics" to "Popular topics". This change looks good if it reflects an actual UI update.

  1. Please confirm that this change matches the current UI of the application.
  2. Consider adding a comment explaining the reason for this change, which would improve code maintainability.

To ensure consistency across the codebase, let's verify if this change is reflected elsewhere:

This script will help identify any inconsistencies or places where the text might need to be updated.

✅ Verification successful

Verified UI update and comments.

The locator text has been updated from "Recommended topics" to "Popular topics", and this change aligns with the current UI of the application.

Consider adding a comment explaining the reason for this change to improve code maintainability.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Search for occurrences of both "Recommended topics" and "Popular topics"
# in the codebase to ensure consistency.

echo "Searching for 'Recommended topics':"
rg --type-add 'web:*.{js,ts,jsx,tsx,html,css}' --type web "Recommended topics"

echo "\nSearching for 'Popular topics':"
rg --type-add 'web:*.{js,ts,jsx,tsx,html,css}' --type web "Popular topics"

Length of output: 492

playwright.config.ts Outdated Show resolved Hide resolved
server/api/router/post.ts Outdated Show resolved Hide resolved
@JohnAllenTech JohnAllenTech marked this pull request as draft October 4, 2024 04:26
NiallJoeMaher
NiallJoeMaher previously approved these changes Oct 4, 2024
Copy link
Contributor

@NiallJoeMaher NiallJoeMaher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🌮 This is great to get back in!

@NiallJoeMaher
Copy link
Contributor

Let me know when this is no longer WIP!

@JohnAllenTech
Copy link
Contributor Author

Working on reusing a single login across multiple tests.

Currently hitting this after maybe ~10 test suite runs

image

Copy link

github-actions bot commented Oct 8, 2024

Uh oh! @JohnAllenTech, the image you shared is missing helpful alt text. Check #1061 (comment).

Alt text is an invisible description that helps screen readers describe images to blind or low-vision users. If you are using markdown to display images, add your alt text inside the brackets of the markdown image.

Learn more about alt text at Basic writing and formatting syntax: images on GitHub Docs.

@praveen-quizizz
Copy link

@JohnAllenTech can we try making login/auth specific tests serial so they don't rate limit us.

Or move out the auth tests to a separate project and run them standalone with a different GitHub oauth app?

@JohnAllenTech
Copy link
Contributor Author

JohnAllenTech commented Oct 11, 2024

This is actually a nightmare 🤣

Current state is

Once auth passes the rest of the tests are fine.

@JohnAllenTech
Copy link
Contributor Author

@praveen-quizizz
Copy link

@JohnAllenTech I was not aware of this PR status so I created one for e2e and have some work there,
We can collaborate on getting things ironed out and tests are working fine on my side

PR link #1086

@JohnAllenTech
Copy link
Contributor Author

@praveen-quizizz no issues.

I see you havent tackled the authentication setup yet. Did you plan to use a GH oauth app for this? Are you referring to a GH oauth app or a GH app ? They are actually two different things.

How would you plan to do the GH SSO flow if you authenticate with a GH app?

My reason for asking is I am running out of ideas to get the GH SSO + Next Auth working. It seems to be a known issue.

@JohnAllenTech
Copy link
Contributor Author

My last idea on this is a little hacky.

Create a session for the user manually using drizzle.
Forge the next-auth.session-token cookie.

If both of these are their it will appear as if the user has logged in using a valid authN prcoess... (I think)

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Outside diff range and nitpick comments (2)
playwright.config.ts (1)

38-42: Approve changes to "chromium" project and suggest improvement

The modifications to the "chromium" project, including the addition of storageState and dependency on the "setup" project, are good improvements. These changes should help address the authentication issues mentioned in the PR objectives.

Consider adding a comment explaining the purpose of the storageState file and its relationship to the authentication process. This would improve code maintainability. For example:

use: {
  ...devices["Desktop Chrome"],
  // Use the authenticated state created by the setup project
  storageState: "playwright/.auth/browser.json",
},
drizzle/seed.ts (1)

12-17: Consider removing hardcoded E2E constants in a future PR

While the hardcoded constants for E2E testing are acceptable temporarily, please remember to remove them and switch to using environment variables in a follow-up PR to enhance security and configurability.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between d5468c8 and 5f89326.

📒 Files selected for processing (4)
  • drizzle/seed.ts (3 hunks)
  • e2e/home.spec.ts (1 hunks)
  • e2e/login.spec.ts (1 hunks)
  • playwright.config.ts (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • e2e/home.spec.ts
  • e2e/login.spec.ts
🧰 Additional context used
🔇 Additional comments (4)
playwright.config.ts (2)

35-35: Approve addition of "setup" project for authentication

The addition of a "setup" project specifically for authentication tests is a good practice. This aligns with the PR objectives of improving E2E test stability and addressing authentication issues.

Could you provide more details about the auth.setup.ts file and how it handles the authentication process? This information would be helpful for a more comprehensive review.


21-21: Consider the impact of increasing CI workers

Increasing the number of workers from 1 to 2 for CI environments could potentially improve test execution speed. However, this change might also lead to increased resource usage and potential instability if the CI environment is not properly configured to handle parallel test execution.

To ensure this change doesn't negatively impact your CI pipeline, please run the following script to check the CI environment's capabilities:

drizzle/seed.ts (2)

119-147: Function seedE2EUser correctly seeds the E2E test user

The implementation for seedE2EUser correctly checks for the existence of the E2E test user and creates one if it doesn't exist. This ensures that the E2E tests have a consistent user to operate with.


252-253: E2E user and session seeding integrated correctly

The calls to seedE2EUser() and seedE2EUserSession(user.id) ensure that the E2E test user and session are properly seeded during the data seeding process, which is essential for the E2E tests to function reliably.

playwright.config.ts Show resolved Hide resolved
Comment on lines +149 to +175
const seedE2EUserSession = async (userId: string) => {
const [existingE2EUserSession] = await db
.selectDistinct()
.from(session)
.where(eq(session.sessionToken, E2E_SESSION_ID));

if (existingE2EUserSession) {
console.log("E2E Test session already exists. Skipping creation");
return existingE2EUserSession;
}

try {
const currentDate = new Date();

return await db
.insert(session)
.values({
userId,
sessionToken: E2E_SESSION_ID,
// Set session to expire in 6 months.
expires: new Date(currentDate.setMonth(currentDate.getMonth() + 6)),
})
.returning();
} catch (err) {
console.log(err);
}
};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Handle errors appropriately in seedE2EUserSession

In the seedE2EUserSession function, the catch block logs the error but does not rethrow or return a value. This could lead to unexpected behavior if an error occurs. Consider rethrowing the error or returning a default value to ensure that any issues are properly propagated.

Apply this diff to improve error handling:

      } catch (err) {
        console.log(err);
+       throw err;
      }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const seedE2EUserSession = async (userId: string) => {
const [existingE2EUserSession] = await db
.selectDistinct()
.from(session)
.where(eq(session.sessionToken, E2E_SESSION_ID));
if (existingE2EUserSession) {
console.log("E2E Test session already exists. Skipping creation");
return existingE2EUserSession;
}
try {
const currentDate = new Date();
return await db
.insert(session)
.values({
userId,
sessionToken: E2E_SESSION_ID,
// Set session to expire in 6 months.
expires: new Date(currentDate.setMonth(currentDate.getMonth() + 6)),
})
.returning();
} catch (err) {
console.log(err);
}
};
const seedE2EUserSession = async (userId: string) => {
const [existingE2EUserSession] = await db
.selectDistinct()
.from(session)
.where(eq(session.sessionToken, E2E_SESSION_ID));
if (existingE2EUserSession) {
console.log("E2E Test session already exists. Skipping creation");
return existingE2EUserSession;
}
try {
const currentDate = new Date();
return await db
.insert(session)
.values({
userId,
sessionToken: E2E_SESSION_ID,
// Set session to expire in 6 months.
expires: new Date(currentDate.setMonth(currentDate.getMonth() + 6)),
})
.returning();
} catch (err) {
console.log(err);
throw err;
}
};

NiallJoeMaher
NiallJoeMaher previously approved these changes Oct 14, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (3)
README.md (3)

100-113: LGTM: Improved GitHub authentication setup instructions

The expanded instructions and added screenshots for setting up GitHub OAuth are excellent additions. They provide clear, step-by-step guidance that will help users avoid common setup pitfalls.

Consider changing "setup" to "set up" on line 102 for grammatical correctness:

-For development, make sure you setup this with a **Homepage URL** of
+For development, make sure you set up this with a **Homepage URL** of
🧰 Tools
🪛 LanguageTool

[grammar] ~102-~102: The word “setup” is a noun. The verb is spelled with a space.
Context: ... below. For development, make sure you setup this with a Homepage URL of ``` ht...

(NOUN_VERB_CONFUSION)

🪛 Markdownlint

104-104: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


110-110: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


144-153: LGTM with suggestions: New End-to-End Testing section

The addition of the End-to-End Testing section with Playwright is excellent. It provides clear instructions for setting up the environment, seeding the database, and running the tests in both headless and UI modes.

The descriptions of the E2E environment variables (lines 144-153) could be improved for clarity. Consider updating them as follows:

 ### E2E_USER_SESSION_ID
-
-This is the sessionToken uuid that .
-This is currently hardcoded and there is no reason to change this until we require multiple E2E test users within the same test suite
+
+This is the UUID used as the sessionToken for E2E test authentication.
+It's currently hardcoded and doesn't need to be changed unless multiple E2E test users are required within the same test suite.
 
 ### E2E_USER_ID
-
-This is the userId if the E2E user used for testing .
-This is currently hardcoded and there is no reason to change this until we require multiple E2E test users within the same test suite
+
+This is the userId of the E2E user used for testing.
+It's currently hardcoded and doesn't need to be changed unless multiple E2E test users are required within the same test suite.
+
+### E2E_USER_EMAIL
+
+This is the email address of the E2E user used for testing.
+It's currently hardcoded and doesn't need to be changed unless multiple E2E test users are required within the same test suite.

These changes provide more context and clarity about the purpose and usage of these environment variables.

Also applies to: 166-205


104-104: Minor formatting improvements

To enhance the readability and consistency of the document, consider making the following changes:

  1. Add language specifications to the code blocks:
-```
+```plaintext
 http://localhost:3000/

- +plaintext
http://localhost:3000/api/auth


-```
+```bash
npm run db:seed

2. Remove the loose punctuation marks at the end of list items:

```diff
-- `E2E_USER_ID`: The id of the E2E user for testing.
-- `E2E_USER_EMAIL`: The email of the E2E user for testing.
-- `E2E_USER_SESSION_ID`: The session id that the user will use to authenticate.
+- `E2E_USER_ID`: The id of the E2E user for testing
+- `E2E_USER_EMAIL`: The email of the E2E user for testing
+- `E2E_USER_SESSION_ID`: The session id that the user will use to authenticate

These changes will improve the overall formatting and consistency of the README.

Also applies to: 110-110, 174-176, 185-185

🧰 Tools
🪛 Markdownlint

104-104: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 5f89326 and 0ae6105.

⛔ Files ignored due to path filters (3)
  • .github/workflows/e2e-tests.yml is excluded by !**/*.yml
  • package-lock.json is excluded by !**/package-lock.json, !**/*.json
  • package.json is excluded by !**/*.json
📒 Files selected for processing (2)
  • README.md (5 hunks)
  • e2e/home.spec.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • e2e/home.spec.ts
🧰 Additional context used
🪛 LanguageTool
README.md

[grammar] ~102-~102: The word “setup” is a noun. The verb is spelled with a space.
Context: ... below. For development, make sure you setup this with a Homepage URL of ``` ht...

(NOUN_VERB_CONFUSION)


[uncategorized] ~174-~174: Loose punctuation mark.
Context: ...et in your .env file: - E2E_USER_ID: The id of the E2E user for testing. - `...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~175-~175: Loose punctuation mark.
Context: ...E2E user for testing. - E2E_USER_EMAIL: The email of the E2E user for testing. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~176-~176: Loose punctuation mark.
Context: ...ser for testing. - E2E_USER_SESSION_ID: The session id that the user will use t...

(UNLIKELY_OPENING_PUNCTUATION)

🪛 Markdownlint
README.md

104-104: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


110-110: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


185-185: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (2)
README.md (2)

29-29: LGTM: Improved installation instructions

The additions to the installation instructions are helpful. The note about checking the Node version against .nvmrc and the clarified instructions for creating the .env file and seeding the database will help users set up the project more easily.

Also applies to: 53-53, 61-61


Line range hint 1-247: LGTM: Significantly improved README

The changes made to this README file are substantial and greatly improve its usefulness. Key improvements include:

  1. Clearer installation instructions with notes on Node version compatibility.
  2. More detailed guidance on setting up GitHub authentication, including helpful screenshots.
  3. A new section on End-to-End Testing with Playwright, providing clear instructions for setup and execution.
  4. Overall better structure and formatting throughout the document.

These changes will make it easier for new contributors to set up the project and understand its various components. Great work on improving the documentation!

🧰 Tools
🪛 LanguageTool

[uncategorized] ~174-~174: Loose punctuation mark.
Context: ...et in your .env file: - E2E_USER_ID: The id of the E2E user for testing. - `...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~175-~175: Loose punctuation mark.
Context: ...E2E user for testing. - E2E_USER_EMAIL: The email of the E2E user for testing. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~176-~176: Loose punctuation mark.
Context: ...ser for testing. - E2E_USER_SESSION_ID: The session id that the user will use t...

(UNLIKELY_OPENING_PUNCTUATION)

🪛 Markdownlint

185-185: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

NiallJoeMaher
NiallJoeMaher previously approved these changes Oct 14, 2024
Copy link
Contributor

@NiallJoeMaher NiallJoeMaher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🌮

Copy link
Contributor

@NiallJoeMaher NiallJoeMaher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants