{"id":18700891,"url":"https://github.com/rabestro/exercism-azure-ijhttp","last_synced_at":"2026-01-25T16:31:57.480Z","repository":{"id":233604341,"uuid":"787531209","full_name":"rabestro/exercism-azure-ijhttp","owner":"rabestro","description":"A repository demonstrating API testing using JetBrains HTTP Client and httpYac, featuring tests for an Azure function that implements the 'Change' exercise from Exercism.org","archived":false,"fork":false,"pushed_at":"2024-11-25T19:23:29.000Z","size":2015,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-19T03:41:17.501Z","etag":null,"topics":["api-testing","example-code","httpyac","ijhttp"],"latest_commit_sha":null,"homepage":"https://exercism.org/exercises/change","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rabestro.png","metadata":{"files":{"readme":"README.md","changelog":"change/A greedy approach is not optimal.http","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-04-16T17:46:06.000Z","updated_at":"2024-11-25T19:23:33.000Z","dependencies_parsed_at":"2024-04-16T22:54:23.297Z","dependency_job_id":"c443b649-cb4c-48a2-9b88-a6add3f7d9de","html_url":"https://github.com/rabestro/exercism-azure-ijhttp","commit_stats":null,"previous_names":["rabestro/exercism-azure-ijhttp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rabestro/exercism-azure-ijhttp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabestro%2Fexercism-azure-ijhttp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabestro%2Fexercism-azure-ijhttp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabestro%2Fexercism-azure-ijhttp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabestro%2Fexercism-azure-ijhttp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rabestro","download_url":"https://codeload.github.com/rabestro/exercism-azure-ijhttp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabestro%2Fexercism-azure-ijhttp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28755541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T13:59:49.818Z","status":"ssl_error","status_checked_at":"2026-01-25T13:59:33.728Z","response_time":113,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-testing","example-code","httpyac","ijhttp"],"created_at":"2024-11-07T11:39:42.759Z","updated_at":"2026-01-25T16:31:57.466Z","avatar_url":"https://github.com/rabestro.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# API Testing with JetBrains HTTP Client and httpYac\n\nThis repository demonstrates how to create API tests using JetBrains HTTP Client and httpYac. These tests are designed for an Azure function that implements the \"Change\" exercise from Exercism.org.\n\n## Task Description\n\nThe task is to create an API that calculates the smallest number of coins needed to make a given amount of change. The API should be able to handle any set of coin denominations. For example, it should be able to handle American coins (1, 5, 10, 25), as well as arbitrary denominations like [1, 4, 15, 20, 50].\n\nThe API is implemented as an Azure function and the code can be found in this repository: https://github.com/rabestro/exercism-azure-functions\n\nThe detailed description of the exercise can be found here: https://exercism.org/exercises/change\n\n## Test Cases\n\nThe test cases are designed to cover a variety of scenarios, including:\n\n- Making change for 1 cent\n- Making change with a single coin\n- Making change with multiple coins\n- Making change with Lilliputian coins\n- Making change with Lower Elbonia coins\n- Making change for large target values\n- Making change without unit coins available\n- Making change when a greedy approach is not optimal\n- Making no change (0 cents)\n- Error handling for change smaller than the smallest of coins\n- Error handling when no combination can add up to target\n- Error handling for negative change values\n\nEach test case sends a POST request to the `/api/change` endpoint with a JSON payload specifying the available coins and the target amount of change. The tests then check the response status and the body of the response.\n\nAll test cases are generated automatically from the canonical data of this exercise, which can be found at: https://github.com/exercism/problem-specifications/blob/main/exercises/change/canonical-data.json\n\n## Running the Tests\n\nTo run the tests, you can use either JetBrains HTTP Client or httpYac. Both clients are compatible and can run the same set of tests. Instructions for running the tests with each client can be found in the respective sections of this README.\n\n## JetBrains HTTP Client\n\nThe tests can be run directly from JetBrains Idea Ultimate or by installing CLI. Instructions for installing and using the CLI can be found here: https://www.jetbrains.com/help/idea/http-client-cli.html\n\n![IntelliJ IDEA Ultimate](assets/ijhttp-greedy.png)\n\n## httpYac\n\nThe tests can be run directly from Visual Code or by CLI.\nTo run the tests, use the following commands:\n\n```bash\nnpm install\nnpm run test\n```\n\n![Visual Code](assets/httpyac-greedy.png)\n\n## httpYac Simple Assertions\n\n```bash\nnpm run httpyac\n```\n\n### IntelliJ IDEA Community\n\n![Advanced Tests](assets/httpyac-idea-community.png)\n\n### IntelliJ IDEA Ultimate\n\n![Simple Assertions](assets/httpyac-idea-ultimate.png)\n\n### Visual Code\n\n![Simple Assertions](assets/httpyac-vscode-assertions.png)\n\n## GitHub Actions\n\nTwo GitHub Actions have been added to the repository to run the tests:\n\n- api-tests-ijhttp.yaml\n- api-tests-httpyac.yaml\n- api-tests-assertions.yaml\n\nThese actions can be run manually whenever needed.\n\n## License\n\nThis project is licensed under the ISC license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabestro%2Fexercism-azure-ijhttp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frabestro%2Fexercism-azure-ijhttp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabestro%2Fexercism-azure-ijhttp/lists"}