diff --git a/src/components/QuickStartList.js b/src/components/QuickStartList.js index 17f9e6e03..021cf1081 100644 --- a/src/components/QuickStartList.js +++ b/src/components/QuickStartList.js @@ -149,7 +149,6 @@ const quickstarts = [ link: "/docs/quickstart/samples-mysql/#running-app-locally-on-linuxwsl-", }, - /* { title: "FastHttp + Postgres", language: "Go", @@ -158,7 +157,6 @@ const quickstarts = [ "A sample CRUD application to demonstrate how seamlessly Keploy integrates with FastHttp and Postgres.", link: "/docs/quickstart/samples-fasthttp/#using-docker-compose-", }, - */ { title: "FastHttp + Postgres", diff --git a/static/img/fasthttp-postgres-test.png b/static/img/fasthttp-postgres-test.png new file mode 100644 index 000000000..349657577 Binary files /dev/null and b/static/img/fasthttp-postgres-test.png differ diff --git a/static/img/go-fasthttp-postgres-record.png b/static/img/go-fasthttp-postgres-record.png new file mode 100644 index 000000000..ec622b543 Binary files /dev/null and b/static/img/go-fasthttp-postgres-record.png differ diff --git a/static/img/go-fasthttp-postgres-test1.png b/static/img/go-fasthttp-postgres-test1.png new file mode 100644 index 000000000..b5738a553 Binary files /dev/null and b/static/img/go-fasthttp-postgres-test1.png differ diff --git a/versioned_docs/version-4.0.0/quickstart/go-fasthttp-postgres.md b/versioned_docs/version-4.0.0/quickstart/go-fasthttp-postgres.md index 61667fe1a..1aec4d55a 100644 --- a/versioned_docs/version-4.0.0/quickstart/go-fasthttp-postgres.md +++ b/versioned_docs/version-4.0.0/quickstart/go-fasthttp-postgres.md @@ -20,12 +20,99 @@ keyword: --- import InstallReminder from '@site/src/components/InstallReminder'; -import SectionDivider from '@site/src/components/SectionDivider'; import ProductTier from '@site/src/components/ProductTier'; +import SectionDivider from '@site/src/components/SectionDivider'; + +# FastHTTP & Postgres Sample CRUD App -# Running App Locally on Linux/WSL ๐Ÿง +This guide walks you through generating tests and DB mocks for a sample CRUD app built with FastHttp and Postgres using Keploy. + + + +## Using Docker Compose + +### Clone the sample CRUD application ๐Ÿงช + +```bash +git clone https://github.com/keploy/samples-go.git && cd samples-go/fasthttp-postgres +go mod download +``` + +### Lights, Camera, Record! ๐ŸŽฅ + +Start up the application and Keploy with a single command. Make sure to keep an eye on the two key flags: + +`-c`: Command to run the app (e.g., `docker compose up`). + +`--container-name`: The container name in the `docker-compose.yml` for traffic interception. + +```bash +keploy record -c "docker compose up" --container-name "fasthttp_app" --build-delay 50 +``` + +> `--build-delay` adds a buffer (in seconds) to allow images to build/pull and services to start before Keploy begins interception. If your services are already up, you can omit it. + +If you're seeing logs that resemble the ones below, you're on the right track: + +Sample Keploy Record + +Make API calls using **cURL**, **Postman**, or **Hoppscotch**. +Keploy captures these requests to automatically generate test suites with test cases and data mocks. + +### Generate Traffic + +#### Post Requests + +```bash +curl --request POST \ +--url http://localhost:8080/authors \ +--header 'content-type: application/json' \ +--data '{"name":"Author Name"}' +``` + +This API call generates a test case along with the required mocks. You can find the generated files in the Keploy directory, including `test-1.yml` and `mocks.yml`. + +You can continue by making additional API calls to generate more test cases. + +#### Get Requests + +```bash +curl --request GET --url http://localhost:8080/books +``` + +### ๐Ÿƒโ€โ™€๏ธ Run the Tests + +Time to run the testcases which were generated from the previous API calls.. + +```bash +keploy test -c "docker compose up" --container-name "fasthttp_app" --build-delay 50 --delay 10 +``` + +> The `--delay` flag specifies the time (in seconds) Keploy waits before running the test cases after starting the application. + +If you're seeing logs that resemble the ones below, you're on the right track: + +Sample Keploy Replay + +When all is said and done, your test results should look a little something like this: + +Sample Keploy Replay + +Final thoughts? Dive deeper! Try different API calls, tweak the DB response in the `mocks.yml`, or fiddle with the request or response in `test-x.yml`. Run the tests again and see the magic unfold! + +### Wrapping it up ๐ŸŽ‰ + +Congrats on the journey so far! You've seen Keploy's power, flexed your coding muscles, and had a bit of fun too! Now, go out there and keep exploring, innovating, and creating! Remember, with the right tools and a sprinkle of fun, anything's possible. + +Happy coding! โœจ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ปโœจ + + + +--- + +## Running App Locally on Linux/WSL ๐Ÿง This guide walks you through generating tests and DB mocks for a sample CRUD app built with FastHttp and Postgres using Keploy. @@ -40,9 +127,18 @@ go mod download We'll be running our sample application right on Linux, but just to make things a tad more thrilling, we'll have the database (Postgres) chill on Docker. Ready? Let's get the party started! ๐ŸŽ‰ -#### Point the app to local Postgres - -Update the Postgres URL to `localhost:5432` in `app.go` (mentioned at line 21 in the sample). +> Note: This application requires the following database environment variables +> to be set in order to run correctly. +> +> Create a .env file in this directory with the following values: +> +> ```env +> DB_HOST=localhost +> DB_PORT=5432 +> DB_USER=postgres +> DB_PASSWORD=password +> DB_NAME=db +> ``` #### Start Postgres @@ -116,3 +212,5 @@ Final thoughts? Dive deeper! Try different API calls, tweak the DB response in t Congrats on the journey so far! You've seen Keploy's power, flexed your coding muscles, and had a bit of fun too! Now, go out there and keep exploring, innovating, and creating! Remember, with the right tools and a sprinkle of fun, anything's possible Happy coding! โœจ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ปโœจ + +Hope this helps you out, if you still have any questions, reach out to us .