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

feat: keploy integrate #70

Closed
wants to merge 5 commits into from
Closed

Conversation

himanshu-wedensday
Copy link

@himanshu-wedensday himanshu-wedensday commented May 8, 2024

Ticket Link


Related Links


Description


Steps to Reproduce / Test



Checklist

  • PR description included
  • yarn test passes
  • Tests are [changed or added]
  • Relevant documentation is changed or added (and PR referenced)

GIF's


Summary by CodeRabbit

  • New Features

    • Added support for Keploy Test Integration in the web app starter template.
    • Introduced Keploy tests for various HTTP endpoints.
  • Documentation

    • Updated README with instructions for running Keploy tests and obtaining test coverage.
  • Chores

    • Updated CI workflow to include steps for installing Yarn, installing Keploy, running Keploy tests, and calculating total coverage.
    • Updated package.json with new scripts for code coverage reporting and added nyc configuration.
  • Tests

    • Added multiple HTTP test configurations for endpoints including creating, updating, fetching, and deleting various resources.

Copy link

coderabbitai bot commented May 8, 2024

Warning

Rate Limit Exceeded

@himanshu-wedensday has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 18 minutes and 17 seconds before requesting another review.

How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.
Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.
Please see our FAQ for further information.

Commits Files that changed from the base of the PR and between 7d3d714 and 576cc39.

Walkthrough

The recent updates introduce Keploy test integration into the project, enhancing test automation and coverage reporting. Changes span across configuration files, including GitHub workflows, Docker Compose, and package scripts, to integrate Keploy and Yarn for testing and coverage. Additionally, multiple YAML files have been added to define specific HTTP test cases, and the README has been updated to reflect these new testing instructions.

Changes

File Path Summary
.github/workflows/ci.yml Added steps to install Yarn, install Keploy, run Keploy tests, and calculate total coverage.
README.md Updated to include instructions for running tests with Jest and Keploy, and getting test coverage.
docker-compose.yml Commented out the configuration for the app service.
keploy/test-set-2/tests/... Added multiple YAML files defining HTTP test cases for various endpoints.
package.json Updated scripts for code coverage reporting using nyc and added new configurations.
postman/parcel-node-mongo... Added "Keploy-Test-Name" key-value pairs for test identification in the Postman collection.

In lines of code, we weave our tale,
With Keploy tests, we now prevail.
From YAML files to Docker's might,
Our coverage grows, day and night.
With Yarn in hand, we set the stage,
For better code on every page.
🐇✨


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>.
    • 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 generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @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.

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 as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration 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

@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: 20

Out of diff range and nitpick comments (5)
keploy/reports/test-run-3/test-set-1-report.yaml (1)

257-257: Inconsistent timestamps in the Date header across different tests.

The Date header shows different timestamps for tests that supposedly completed at the same time. This could be a minor issue but worth noting for consistency.

keploy/reports/test-run-6/test-set-1-report.yaml (1)

2154-2156: Check for consistency in test output expectations.

The expected and actual IDs in the test output differ, which might indicate an inconsistency in test setup or data handling. Verify if this is intentional or an error.

keploy/reports/test-run-7/test-set-1-report.yaml (2)

177-177: The Date header shows different times in expected and actual results. This could affect caching and other time-sensitive operations.


1935-1935: The X-Response-Time is unusually high. Consider optimizing the server or database queries to improve response times.

keploy/reports/test-run-8/test-set-1-report.yaml (1)

140-140: Inconsistent response time in test results.

The expected and actual values of X-Response-Time differ significantly. While this might be acceptable depending on the test setup, it's good practice to investigate any large discrepancies to ensure the reliability of the tests.

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between e14d59a and 35bb3c0.
Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/*.lock
Files selected for processing (19)
  • .babelrc (1 hunks)
  • jest.config.json (1 hunks)
  • keploy/reports/test-run-3/test-set-1-report.yaml (1 hunks)
  • keploy/reports/test-run-4/test-set-1-report.yaml (1 hunks)
  • keploy/reports/test-run-5/test-set-1-report.yaml (1 hunks)
  • keploy/reports/test-run-6/test-set-1-report.yaml (1 hunks)
  • keploy/reports/test-run-7/test-set-1-report.yaml (1 hunks)
  • keploy/reports/test-run-8/test-set-1-report.yaml (1 hunks)
  • keploy/test-set-1/mocks.yaml (1 hunks)
  • keploy/test-set-1/tests/test-1.yaml (1 hunks)
  • keploy/test-set-1/tests/test-2.yaml (1 hunks)
  • keploy/test-set-1/tests/test-3.yaml (1 hunks)
  • keploy/test-set-1/tests/test-4.yaml (1 hunks)
  • keploy/test-set-1/tests/test-5.yaml (1 hunks)
  • keploy/test-set-1/tests/test-6.yaml (1 hunks)
  • keploy/test-set-1/tests/test-7.yaml (1 hunks)
  • keploy/test-set-1/tests/test-8.yaml (1 hunks)
  • package.json (3 hunks)
  • server/index.js (1 hunks)
Files not summarized due to errors (7)
  • keploy/reports/test-run-3/test-set-1-report.yaml: Error: Message exceeds token limit
  • keploy/reports/test-run-4/test-set-1-report.yaml: Error: Message exceeds token limit
  • keploy/reports/test-run-5/test-set-1-report.yaml: Error: Message exceeds token limit
  • keploy/reports/test-run-6/test-set-1-report.yaml: Error: Message exceeds token limit
  • keploy/reports/test-run-7/test-set-1-report.yaml: Error: Message exceeds token limit
  • keploy/reports/test-run-8/test-set-1-report.yaml: Error: Message exceeds token limit
  • keploy/test-set-1/mocks.yaml: Error: Message exceeds token limit
Files skipped from review due to trivial changes (10)
  • .babelrc
  • jest.config.json
  • keploy/test-set-1/tests/test-1.yaml
  • keploy/test-set-1/tests/test-2.yaml
  • keploy/test-set-1/tests/test-3.yaml
  • keploy/test-set-1/tests/test-4.yaml
  • keploy/test-set-1/tests/test-5.yaml
  • keploy/test-set-1/tests/test-6.yaml
  • keploy/test-set-1/tests/test-7.yaml
  • keploy/test-set-1/tests/test-8.yaml
Additional Context Used
GitHub Check Runs (1)
Coverage annotations (🧪 jest-coverage-report-action) success (12)

server/index.js: [warning] 57-57: 🧾 Statement is not covered
Warning! Not covered statement


server/index.js: [warning] 58-60: 🧾 Statement is not covered
Warning! Not covered statement


server/index.js: [warning] 59-59: 🧾 Statement is not covered
Warning! Not covered statement


server/index.js: [warning] 56-61: 🌿 Branch is not covered
Warning! Not covered branch


server/index.js: [warning] 58-58: 🕹 Function is not covered
Warning! Not covered function

Additional comments not posted (18)
server/index.js (3)

56-61: Ensure integration tests cover the server instantiation and listening logic.


64-76: Graceful shutdown implementation enhances server robustness.


78-79: Correct setup of signal handling for graceful shutdown.

package.json (2)

7-11: Enhancements to testing scripts improve coverage and testing capabilities.


34-51: Well-defined nyc configuration supports accurate coverage metrics.

keploy/reports/test-run-4/test-set-1-report.yaml (2)

1-1: Ensure the version specified is supported by the current Keploy API.


2151-2151: The test set name at the end of the file should be verified for consistency with other test documentation.

Verification successful

The verification process aimed to check the consistency of the test set name "test-set-1" across various test documentation files within the keploy directory. The search results from the executed script indicate that the name "test-set-1" is consistently used across multiple test documentation files in different test runs. This consistency is observed in the naming of test sets, test case paths, and mock paths, which all reference "test-set-1".

Given this information, it can be concluded that the test set name "test-set-1" is used consistently across the documentation, aligning with the initial review comment's concern for verification.

Final Conclusion:

  • The test set name "test-set-1" is consistently used across various test documentation files, confirming the uniformity and correctness of its usage in the context of the provided YAML files.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify consistency of test set names across documentation.

# Test: Search for 'test-set-1' in other test documentation files. Expect: Consistent usage of the test set name.
rg 'test-set-1' --type yaml

Length of output: 18069

keploy/reports/test-run-5/test-set-1-report.yaml (3)

3-3: Ensure that the status of the test set reflects the actual results accurately.

Verification successful

The verification script has confirmed that the status "FAILED" appears multiple times within the test-set-1-report.yaml file. This includes the overall status of the test set as well as at least one individual test case that has failed. This aligns with the expectation that the status "FAILED" should be present if there are failing test cases within the set.

Given this information, it appears that the status in the YAML file accurately reflects the actual test results, as there are specific test cases marked as "FAILED" which justify the overall test set status being "FAILED".

Final Response:

The status "FAILED" in the test report accurately reflects the actual test results, as confirmed by the presence of individual test cases also marked as "FAILED". No discrepancies were found in the test report's representation of the test outcomes.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that the status 'FAILED' in the test report corresponds to the actual test results.

# Test: Search for any test cases with status 'FAILED'. Expect: At least one test case with 'FAILED' status.
rg --type yaml $'status: FAILED' keploy/reports/test-run-5/test-set-1-report.yaml

Length of output: 118


105-105: The discrepancy in 'X-Response-Time' between expected and actual values might indicate performance variability. It's crucial to investigate whether this variability is within acceptable limits.


1883-1883: The test case with ID 'test-8' has failed. It's important to investigate the reasons for this failure to ensure that the issue is addressed.

keploy/reports/test-run-6/test-set-1-report.yaml (1)

1913-1913: Verify the expected status code for POST requests.

Ensure that the expected status code for creating a new user should be 201 (Created), not 200 (OK), according to RESTful best practices.

keploy/reports/test-run-7/test-set-1-report.yaml (3)

1-1: Ensure the version specified is supported by the current Keploy setup.


150-150: The X-Response-Time header shows a significant difference in expected and actual values. This might indicate performance issues or environmental differences that should be investigated.


1904-1910: Ensure that user input such as names and roles are properly validated and sanitized to prevent injection attacks.

keploy/reports/test-run-8/test-set-1-report.yaml (2)

1-1: Ensure the version specified is compatible with current Keploy API standards.


186-186: Date header mismatch in test results.

Verification successful

The search results confirm that the date header "Mon, 29 Apr 2024 07:14:45 GMT" is consistently used across multiple entries in the test-run-8/test-set-1-report.yaml file. This consistency suggests that there is no mismatch in the date headers within this specific test report file.

Date Header Consistency Confirmed in Test Results

  • The date header "Mon, 29 Apr 2024 07:14:45 GMT" appears consistently in the test-run-8/test-set-1-report.yaml file, indicating no mismatch within this document.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the system's time synchronization.

# Test: Check the system time against a standard time server. Expect: System time should be synchronized with minimal drift.
timedatectl status | grep 'synchronized'

Length of output: 119



Script:

#!/bin/bash
# Description: Search for date headers in test results files to verify if there's a mismatch.

# Using ripgrep to search for date headers in YAML files within the 'keploy/reports' directory.
rg --glob '*.yaml' '^\s*-\s*Mon,\s*29\s*Apr\s*2024\s*07:14:45\s*GMT\s*$' keploy/reports/

Length of output: 797

keploy/test-set-1/mocks.yaml (2)

1-37: Ensure consistency in timestamp formats across all mocks.

Verification successful

The output from the executed script shows that all reqTimestampMock and resTimestampMock entries in the mocks.yaml file use a consistent timestamp format: YYYY-MM-DDTHH:MM:SS.sssssssss+HH:MM. This confirms that the timestamp formats across all mocks in the file are uniform.

Based on this information, the review comment regarding the consistency of timestamp formats has been verified as correct.


Ensure consistency in timestamp formats across all mocks.

  • All timestamps in mocks.yaml are consistent and follow the format YYYY-MM-DDTHH:MM:SS.sssssssss+HH:MM.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that all timestamp formats in mocks.yaml are consistent.

# Test: Search for inconsistent timestamp formats. Expect: Uniform format across all entries.
rg --type yaml 'reqTimestampMock|resTimestampMock' keploy/test-set-1/mocks.yaml

Length of output: 1008


1-37: Validate the structure and data types in YAML to ensure they meet the expected schema.

Comment on lines 13 to 14
test_case_path: /Users/himanshu/wednesday-repos/node-mongo-express/keploy/test-set-1
mock_path: /Users/himanshu/wednesday-repos/node-mongo-express/keploy/test-set-1/mocks.yaml
Copy link

Choose a reason for hiding this comment

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

Ensure that paths in the configuration do not expose sensitive information or absolute paths.

Consider using environment variables or relative paths to enhance security and portability of the test configurations.

Accept-Language: en-GB,en
Cache-Control: max-age=0
Connection: keep-alive
Cookie: csrftoken=5w8RtIXw5M4ixBeXNqB6wphbStVCywde
Copy link

Choose a reason for hiding this comment

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

Review the inclusion of potentially sensitive cookies in test configurations.

Storing actual CSRF tokens in test configurations can lead to security risks. Consider using placeholders or environment variables.

"email":"[email protected]",
"password":"Raj@123456789",
"role":"SUPER_ADMIN"
}
Copy link

Choose a reason for hiding this comment

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

Ensure that sensitive information is not hardcoded in test cases.

Hardcoding passwords and roles in test configurations can lead to security vulnerabilities. Use environment variables or mock services to handle sensitive data.

@@ -0,0 +1,2150 @@
version: api.keploy.io/v1beta1
name: test-set-1-report
status: FAILED
Copy link

Choose a reason for hiding this comment

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

Tip

Codebase Verification

The verification process has revealed that there are inconsistencies in the test report file keploy/reports/test-run-3/test-set-1-report.yaml. The overall status is marked as FAILED, yet there are individual test cases within the same file that have a status of PASSED. This discrepancy needs to be addressed to ensure the accuracy and reliability of the test reporting.

  • File: keploy/reports/test-run-3/test-set-1-report.yaml
    • The overall status is FAILED.
    • There are individual test cases with a status of PASSED.
Analysis chain

Ensure the status: FAILED is consistent with the individual test outcomes.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that the overall status is consistent with individual test results.

# Test: Check if any test passed when the overall status is FAILED. Expect: No test should have passed.
rg --type yaml $'status: PASSED' keploy/reports/test-run-3/test-set-1-report.yaml

Length of output: 103

Comment on lines 13 to 14
test_case_path: /Users/himanshu/wednesday-repos/node-mongo-express/keploy/test-set-1
mock_path: /Users/himanshu/wednesday-repos/node-mongo-express/keploy/test-set-1/mocks.yaml
Copy link

Choose a reason for hiding this comment

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

Consider using relative paths for test_case_path and mock_path to avoid hardcoding absolute paths.

-  test_case_path: /Users/himanshu/wednesday-repos/node-mongo-express/keploy/test-set-1
-  mock_path: /Users/himanshu/wednesday-repos/node-mongo-express/keploy/test-set-1/mocks.yaml
+  test_case_path: ../../keploy/test-set-1
+  mock_path: ../../keploy/test-set-1/mocks.yaml

Comment on lines 2154 to 2155
expected: '{"data":{"firstName":"himanshu","lastName":"raj","email":"[email protected]","role":"SUPER_ADMIN","_id":"6628e027b16d7879ac569043","__v":0}}'
actual: '{"data":{"firstName":"himanshu","lastName":"raj","email":"[email protected]","role":"SUPER_ADMIN","_id":"6628e1514b944991c39d5a19","__v":0}}'
Copy link

Choose a reason for hiding this comment

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

The JSON body results show a discrepancy in the '_id' field, which could indicate an issue with data consistency or database seeding in tests.

Accept-Language: en-GB,en
Cache-Control: max-age=0
Connection: keep-alive
Cookie: csrftoken=5w8RtIXw5M4ixBeXNqB6wphbStVCywde
Copy link

Choose a reason for hiding this comment

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

Sensitive data exposure through cookies in HTTP headers.

Consider removing or masking sensitive data such as CSRF tokens in the test configurations to prevent potential security risks.

expected: '{"data":{"firstName":"himanshu","lastName":"raj","email":"[email protected]","role":"SUPER_ADMIN","_id":"6628e027b16d7879ac569043","__v":0}}'
actual: '{"data":{"firstName":"himanshu","lastName":"raj","email":"[email protected]","role":"SUPER_ADMIN","_id":"662f48e8e725081eb0ae7767","__v":0}}'
dep_result: []
test_set: test-set-1
Copy link

Choose a reason for hiding this comment

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

Tip

Codebase Verification

The repeated execution of the search script for the string "test-set-1" in the YAML files within the keploy/test-set-1/ directory has consistently produced no results. This indicates that the test set name "test-set-1" is not referenced in any of the YAML files in this directory, despite the presence of multiple YAML files.

Given this information, it appears that the test set name is not consistently used across all test configurations as initially expected. This could potentially lead to inconsistencies or errors in how tests are recognized or grouped within the system.

Action Required:

  • Review and update the test configuration files to ensure that the test set name "test-set-1" is correctly and consistently referenced.
Analysis chain

Ensure the test set name is correctly referenced across all test configurations.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the consistency of the test set name across all configurations.

# Test: Search for the test set name in all test configuration files. Expect: All references should be consistent.
rg --type yaml 'test-set-1' keploy/test-set-1/

Length of output: 46



Script:

#!/bin/bash
# Verify the existence and list contents of the directory 'keploy/test-set-1/'
ls -la keploy/test-set-1/

# Verify the presence of any YAML files in the directory 'keploy/test-set-1/'
find keploy/test-set-1/ -type f -name "*.yaml"

Length of output: 584



Script:

#!/bin/bash
# Search for the string 'test-set-1' within all YAML files in the directory 'keploy/test-set-1/' and its subdirectories
rg --type yaml 'test-set-1' keploy/test-set-1/

Length of output: 46

Comment on lines 13 to 14
test_case_path: /Users/himanshu/wednesday-repos/node-mongo-express/keploy/test-set-1
mock_path: /Users/himanshu/wednesday-repos/node-mongo-express/keploy/test-set-1/mocks.yaml
Copy link

Choose a reason for hiding this comment

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

Consider using relative paths for test_case_path and mock_path to avoid hardcoding paths that are specific to a developer's local environment.

test_case_path: ./keploy/test-set-1
mock_path: ./keploy/test-set-1/mocks.yaml

Accept-Language: en-GB,en
Cache-Control: max-age=0
Connection: keep-alive
Cookie: csrftoken=5w8RtIXw5M4ixBeXNqB6wphbStVCywde
Copy link

Choose a reason for hiding this comment

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

Sensitive information detected in the Cookie header. Ensure that this information is sanitized or securely handled if necessary.

Copy link
Collaborator

@praveenkumar1798 praveenkumar1798 left a comment

Choose a reason for hiding this comment

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

Please record all keploy tests and also use the convention to different test. Currently its just test-1, test-2 and doesnt give a lot of details. Also update the Read me

Copy link

@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: 1

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 35bb3c0 and 8c94fc9.
Files selected for processing (57)
  • .github/workflows/ci.yml (1 hunks)
  • README.md (3 hunks)
  • docker-compose.yml (1 hunks)
  • keploy/test-set-2/tests/aggregate-order-amount-test.yaml (1 hunks)
  • keploy/test-set-2/tests/assign-role-test.yaml (1 hunks)
  • keploy/test-set-2/tests/create-role-test.yaml (1 hunks)
  • keploy/test-set-2/tests/create-store-product-test.yaml (1 hunks)
  • keploy/test-set-2/tests/create-store-test.yaml (1 hunks)
  • keploy/test-set-2/tests/create-supplier-product-test.yaml (1 hunks)
  • keploy/test-set-2/tests/create-supplier-test.yaml (1 hunks)
  • keploy/test-set-2/tests/create-unsharded-order-test.yaml (1 hunks)
  • keploy/test-set-2/tests/create-unsharded-referenced-order-test.yaml (1 hunks)
  • keploy/test-set-2/tests/create-user-test.yaml (1 hunks)
  • keploy/test-set-2/tests/cron-job-test.yaml (1 hunks)
  • keploy/test-set-2/tests/delete-referenced-order-test.yaml (1 hunks)
  • keploy/test-set-2/tests/delete-store-product-test.yaml (1 hunks)
  • keploy/test-set-2/tests/delete-supplierproduct-test.yaml (1 hunks)
  • keploy/test-set-2/tests/delete-unsharded-order-test.yaml (1 hunks)
  • keploy/test-set-2/tests/delete-unsharded-referenced-order-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-all-referenced-order-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-all-shardedreferencedorderTest-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-all-store-products-tests.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-all-store-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-all-supplier-product-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-all-supplier-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-all-unsharder-order-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-all-user-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-one-referenced-order-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-one-store-product-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-one-store-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-one-supplier-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-one-supplierproduct-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-one-unsharded-order-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetch-one-user-test.yaml (1 hunks)
  • keploy/test-set-2/tests/fetchOne-unsharder-Referencedorder-test.yaml (1 hunks)
  • keploy/test-set-2/tests/login-user-test.yaml (1 hunks)
  • keploy/test-set-2/tests/order-fetch-all-test.yaml (1 hunks)
  • keploy/test-set-2/tests/order-fetch-one-test.yaml (1 hunks)
  • keploy/test-set-2/tests/order-remove-order-test.yaml (1 hunks)
  • keploy/test-set-2/tests/order-update-test.yaml (1 hunks)
  • keploy/test-set-2/tests/product-delete-test.yaml (1 hunks)
  • keploy/test-set-2/tests/product-fetch-one-test.yaml (1 hunks)
  • keploy/test-set-2/tests/product-update-product-test.yaml (1 hunks)
  • keploy/test-set-2/tests/products-create-test.yaml (1 hunks)
  • keploy/test-set-2/tests/products-fetch-all-test.yaml (1 hunks)
  • keploy/test-set-2/tests/reference-order-create-test.yaml (1 hunks)
  • keploy/test-set-2/tests/remove-store-test.yaml (1 hunks)
  • keploy/test-set-2/tests/remove-supplier-test.yaml (1 hunks)
  • keploy/test-set-2/tests/remove-user-test.yaml (1 hunks)
  • keploy/test-set-2/tests/update-referencedOrder-test.yaml (1 hunks)
  • keploy/test-set-2/tests/update-store-product-test.yaml (1 hunks)
  • keploy/test-set-2/tests/update-store-test.yaml (1 hunks)
  • keploy/test-set-2/tests/update-supplier-test.yaml (1 hunks)
  • keploy/test-set-2/tests/update-supplierproduct-test.yaml (1 hunks)
  • keploy/test-set-2/tests/update-unshardedReferencedOrder-test.yaml (1 hunks)
  • keploy/test-set-2/tests/update-unshardedorder-test.yaml (1 hunks)
  • keploy/test-set-2/tests/update-user-test.yaml (1 hunks)
Files not processed due to max files limit (1)
  • package.json
Files skipped from review due to trivial changes (34)
  • docker-compose.yml
  • keploy/test-set-2/tests/aggregate-order-amount-test.yaml
  • keploy/test-set-2/tests/create-store-product-test.yaml
  • keploy/test-set-2/tests/create-store-test.yaml
  • keploy/test-set-2/tests/create-supplier-product-test.yaml
  • keploy/test-set-2/tests/create-supplier-test.yaml
  • keploy/test-set-2/tests/create-unsharded-order-test.yaml
  • keploy/test-set-2/tests/create-user-test.yaml
  • keploy/test-set-2/tests/delete-referenced-order-test.yaml
  • keploy/test-set-2/tests/delete-supplierproduct-test.yaml
  • keploy/test-set-2/tests/delete-unsharded-referenced-order-test.yaml
  • keploy/test-set-2/tests/fetch-all-referenced-order-test.yaml
  • keploy/test-set-2/tests/fetch-all-store-products-tests.yaml
  • keploy/test-set-2/tests/fetch-all-store-test.yaml
  • keploy/test-set-2/tests/fetch-all-supplier-product-test.yaml
  • keploy/test-set-2/tests/fetch-all-unsharder-order-test.yaml
  • keploy/test-set-2/tests/fetch-all-user-test.yaml
  • keploy/test-set-2/tests/fetch-one-referenced-order-test.yaml
  • keploy/test-set-2/tests/fetch-one-unsharded-order-test.yaml
  • keploy/test-set-2/tests/fetchOne-unsharder-Referencedorder-test.yaml
  • keploy/test-set-2/tests/order-fetch-all-test.yaml
  • keploy/test-set-2/tests/order-fetch-one-test.yaml
  • keploy/test-set-2/tests/product-delete-test.yaml
  • keploy/test-set-2/tests/product-fetch-one-test.yaml
  • keploy/test-set-2/tests/product-update-product-test.yaml
  • keploy/test-set-2/tests/products-create-test.yaml
  • keploy/test-set-2/tests/products-fetch-all-test.yaml
  • keploy/test-set-2/tests/reference-order-create-test.yaml
  • keploy/test-set-2/tests/remove-store-test.yaml
  • keploy/test-set-2/tests/remove-supplier-test.yaml
  • keploy/test-set-2/tests/remove-user-test.yaml
  • keploy/test-set-2/tests/update-store-product-test.yaml
  • keploy/test-set-2/tests/update-supplierproduct-test.yaml
  • keploy/test-set-2/tests/update-unshardedorder-test.yaml
Additional Context Used
LanguageTool (19)
README.md (19)

Near line 34: Consider a different adverb to strengthen your wording.
Context: ...4"> --- We’re always looking for people who value their work...


Near line 86: Unpaired symbol: ‘[’ seems to be missing
Context: ...ation ## Running Load tests - [Install](https://k6.io/docs/getting-started/inst...


Near line 130: Possible missing comma found.
Context: ...ce keploy.sh- To record the test with keploy Use the command below. keploy rec...


Near line 141: Possible missing comma found.
Context: ...n coverage:report` Note: To run keploy test you must have lima for Mac and WSL for ...


Near line 143: Possible missing comma found.
Context: ...udes unit-test coverage and keploy test coverage use command below: `yarn coverage:...


Near line 147: Possible missing comma found.
Context: ...rn coverage:total` Note: To run keploy test you must have lima for Mac and WSL for ...


Near line 150: Unpaired symbol: ‘]’ seems to be missing
Context: ...rted check out the api documentation at [/api-docs](http://localhost:9000/api-doc...


Near line 154: Unpaired symbol: ‘]’ seems to be missing
Context: ...e entry point of the application is the server/index.js - ...


Near line 155: Unpaired symbol: ‘]’ seems to be missing
Context: ...The server/app.js imports the APIs from [server/api/index.js](./server/api/index....


Near line 156: Unpaired symbol: ‘]’ seems to be missing
Context: ...erver/api](./server/api) are registered here - MongoDB...


Near line 170: It appears that a hyphen is missing (if ‘auto’ is not used in the context of ‘cars’).
Context: ...compose](./docker-compose.yml) - [auto generated apis](./server/api/requestGenerators.js...


Near line 176: After the expression ‘for example’ a comma is usually used.
Context: ...e multiple copies of the same data. For example - Orders contains purchasedProducts ...


Near line 188: The verb “is” doesn’t seem to fit in this context, “are” is probably more formally correct.
Context: ... - StoreProducts - Products Orders is not impacted since a change in the prod...


Near line 189: A comma may be missing after the conjunctive/linking adverb ‘However’.
Context: ...er purchase will not affect the order. However the application is able to perform extr...


Near line 190: As a shorter alternative for ‘able to’, consider using “can”.
Context: ...ect the order. However the application is able to perform extremely fast reads. 2 reasons...


Near line 195: It appears that a comma is missing.
Context: ... to its ability to have shards. In this application we create 4 shards and the data is dist...


Near line 195: The preposition ‘amongst’ is correct, but some people think that it is old-fashioned or literary. A more frequently used alternative is the preposition “among”.
Context: ...te 4 shards and the data is distributed amongst these shards. These are the shard keys...


Near line 205: Consider using an extreme adjective for ‘good’.
Context: ...iers - Stores
We got really good distribution across shards(24-26%) per ...


Near line 205: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... possible to get a hot shard due to this but we're yet to see that. - productId ...

Additional comments not posted (34)
.github/workflows/ci.yml (3)

21-22: Ensure Yarn is installed correctly.


29-30: LGTM! Ensure the custom command for Keploy tests is correct.


33-34: LGTM! Ensure the custom command for calculating coverage is correct.

keploy/test-set-2/tests/order-remove-order-test.yaml (2)

7-19: Ensure the URL and headers are correct for the DELETE request.


21-56: LGTM! Ensure the response headers and body content are correct.

keploy/test-set-2/tests/order-update-test.yaml (2)

7-20: Ensure the URL and headers are correct for the PATCH request.


23-57: LGTM! Ensure the response headers and body content are correct.

keploy/test-set-2/tests/fetch-one-user-test.yaml (2)

7-19: Ensure the URL and headers are correct for the GET request.


22-47: LGTM! Ensure the response headers and body content are correct.

keploy/test-set-2/tests/fetch-one-store-test.yaml (2)

7-19: Ensure the URL and headers are correct for the GET request.


22-47: LGTM! Ensure the response headers and body content are correct.

keploy/test-set-2/tests/fetch-one-supplier-test.yaml (2)

7-19: Ensure the URL and headers are correct for the GET request.


22-47: LGTM! Ensure the response headers and body content are correct.

keploy/test-set-2/tests/update-user-test.yaml (2)

7-20: Ensure the URL and headers are correct for the PATCH request.


23-47: LGTM! Ensure the response headers and body content are correct.

keploy/test-set-2/tests/update-store-test.yaml (2)

7-20: Ensure the URL and headers are correct for the PATCH request.


23-47: LGTM! Ensure the response headers and body content are correct.

keploy/test-set-2/tests/delete-store-product-test.yaml (1)

22-22: Verify if the 500 status code is intentional.

The response status code is 500, indicating an internal server error. Ensure this is the expected outcome for this test case.

keploy/test-set-2/tests/fetch-one-store-product-test.yaml (1)

22-22: Verify if the 500 status code is intentional.

The response status code is 500, indicating an internal server error. Ensure this is the expected outcome for this test case.

keploy/test-set-2/tests/update-supplier-test.yaml (1)

23-23: Verify if the 500 status code is intentional.

The response status code is 500, indicating an internal server error. Ensure this is the expected outcome for this test case.

keploy/test-set-2/tests/delete-unsharded-order-test.yaml (1)

22-22: Verify if the 500 status code is intentional.

The response status code is 500, indicating an internal server error. Ensure this is the expected outcome for this test case.

keploy/test-set-2/tests/fetch-one-supplierproduct-test.yaml (1)

22-22: Verify if the 500 status code is intentional.

The response status code is 500, indicating an internal server error. Ensure this is the expected outcome for this test case.

keploy/test-set-2/tests/update-referencedOrder-test.yaml (1)

23-23: Verify if the 500 status code is intentional.

The response status code is 500, indicating an internal server error. Ensure this is the expected outcome for this test case.

keploy/test-set-2/tests/update-unshardedReferencedOrder-test.yaml (1)

23-23: Verify if the 500 status code is intentional.

The response status code is 500, indicating an internal server error. Ensure this is the expected outcome for this test case.

keploy/test-set-2/tests/fetch-all-supplier-test.yaml (1)

22-22: Verify if the unauthorized error response is intentional.

The response body indicates an unauthorized error. Ensure this is the expected outcome for this test case.

keploy/test-set-2/tests/fetch-all-shardedreferencedorderTest-test.yaml (1)

1-67: The test case for fetching all sharded referenced orders is well-defined and comprehensive.

keploy/test-set-2/tests/create-unsharded-referenced-order-test.yaml (1)

1-67: The test case for creating unsharded referenced orders is well-defined and comprehensive.

keploy/test-set-2/tests/cron-job-test.yaml (1)

1-79: The test case for the cron job is well-defined and comprehensive.

keploy/test-set-2/tests/create-role-test.yaml (1)

1-78: The test case for creating roles is well-defined and comprehensive.

keploy/test-set-2/tests/login-user-test.yaml (1)

1-81: The test case for user login is well-defined and comprehensive.

keploy/test-set-2/tests/assign-role-test.yaml (1)

1-84: The test case for assigning roles is well-defined and comprehensive.

README.md (3)

Line range hint 1-81: The introductory content and badges are well-structured.


Line range hint 82-120: The features and setup instructions are well-documented.


Line range hint 121-220: The test instructions and API documentation are well-documented.

.github/workflows/ci.yml Show resolved Hide resolved
Copy link
Collaborator

@praveenkumar1798 praveenkumar1798 left a comment

Choose a reason for hiding this comment

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

Please add description to the tickets about everything that you have done

Comment on lines 3 to 17
# app:
# build:
# context: .
# args:
# ENVIRONMENT_NAME: ${ENVIRONMENT_NAME}
# dockerfile: Dockerfile
# ports:
# - "9000:9000"
# env_file:
# - .env.local
# environment:
# - REDIS_DOMAIN=redis
# - MONGO_BASE_URI=mongo
# depends_on:
# - mongo
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why is this commented ?

.github/workflows/ci.yml Show resolved Hide resolved
package.json Outdated
@@ -69,6 +91,7 @@
"mongoose-to-swagger": "^1.4.0",
"node-fetch": "2",
"nodemon": "^2.0.15",
"nyc": "^15.1.0",
Copy link
Collaborator

Choose a reason for hiding this comment

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

nyc should be a dev dependency right ?

Comment on lines 21 to 22
- name: Install Yarn
run: npm install -g yarn
Copy link
Collaborator

Choose a reason for hiding this comment

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

yarn should be installed by default, I dont think you have to do this

Comment on lines 31 to 32
- name: Test
run: yarn test
Copy link
Collaborator

Choose a reason for hiding this comment

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

Would we need to run yarn test as well ? Because we are doing coverage total right

Copy link
Author

Choose a reason for hiding this comment

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

we need yarn test to generate coverage file for unit test.

Copy link
Collaborator

@praveenkumar1798 praveenkumar1798 left a comment

Choose a reason for hiding this comment

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

Also implement keployn to precommit hook

@@ -0,0 +1,4739 @@
{
Copy link
Collaborator

Choose a reason for hiding this comment

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

There is already a postman collection built. If you want to make some edits. make on it. Why is there two postman collection files

Copy link

@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

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 8c94fc9 and 1c4077a.
Files selected for processing (1)
  • package.json (5 hunks)
Files skipped from review as they are similar to previous changes (1)
  • package.json

Copy link

@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

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 1c4077a and 7d3d714.
Files selected for processing (2)
  • .github/workflows/ci.yml (1 hunks)
  • postman/parcel-node-mongo.postman_collection.json (55 hunks)
Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/ci.yml
Additional comments not posted (35)
postman/parcel-node-mongo.postman_collection.json (35)

25-27: Keploy-Test-Name header added correctly for the "update order" request.


116-118: Keploy-Test-Name header added correctly for the "fetchone order" request.


207-209: Keploy-Test-Name header added correctly for the "remove order" request.


300-302: Keploy-Test-Name header added correctly for the "fetchall orders" request.


378-380: Keploy-Test-Name header added correctly for the "update product" request.


476-478: Keploy-Test-Name header added correctly for the "fetchone product" request.


567-569: Keploy-Test-Name header added correctly for the "remove product" request.


660-662: Keploy-Test-Name header added correctly for the "create product" request.


730-732: Keploy-Test-Name header added correctly for the "fetchall products" request.


808-810: Keploy-Test-Name header added correctly for the "update referencedOrder" request.


905-907: Keploy-Test-Name header added correctly for the "fetchone referencedOrder" request.


1002-1004: Keploy-Test-Name header added correctly for the "remove referencedOrder" request.


1101-1103: Keploy-Test-Name header added correctly for the "create referencedOrder" request.


1171-1173: Keploy-Test-Name header added correctly for the "fetchall referencedOrders" request.


1249-1251: Keploy-Test-Name header added correctly for the "update storeProduct" request.


1340-1342: Keploy-Test-Name header added correctly for the "fetchone storeProduct" request.


1431-1433: Keploy-Test-Name header added correctly for the "remove storeProduct" request.


1524-1526: Keploy-Test-Name header added correctly for the "create storeProduct" request.


1594-1596: Keploy-Test-Name header added correctly for the "fetchall storeProducts" request.


1672-1674: Keploy-Test-Name header added correctly for the "update store" request.


1763-1765: Keploy-Test-Name header added correctly for the "fetchone store" request.


1854-1856: Keploy-Test-Name header added correctly for the "remove store" request.


1947-1949: Keploy-Test-Name header added correctly for the "create store" request.


2017-2019: Keploy-Test-Name header added correctly for the "fetchall stores" request.


2095-2097: Keploy-Test-Name header added correctly for the "update supplierProduct" request.


2192-2194: Keploy-Test-Name header added correctly for the "fetchone supplierProduct" request.


2289-2291: Keploy-Test-Name header added correctly for the "remove supplierProduct" request.


2388-2390: Keploy-Test-Name header added correctly for the "create supplierProduct" request.


2458-2460: Keploy-Test-Name header added correctly for the "fetchall supplierProducts" request.


2536-2538: Keploy-Test-Name header added correctly for the "update supplier" request.


2627-2629: Keploy-Test-Name header added correctly for the "fetchone supplier" request.


2718-2720: Keploy-Test-Name header added correctly for the "remove supplier" request.


2811-2813: Keploy-Test-Name header added correctly for the "create supplier" request.


2882-2884: Keploy-Test-Name header added correctly for the "fetchall suppliers" request.


2959-2961: Keploy-Test-Name header added correctly for the "update unshardedOrder" request.

@himanshu-wedensday himanshu-wedensday deleted the feat/keploy-integrate branch May 14, 2024 18:05
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.

2 participants