{"id":24111467,"url":"https://github.com/nndi-oss/dialoguss","last_synced_at":"2025-05-13T10:49:35.312Z","repository":{"id":39898141,"uuid":"123311322","full_name":"nndi-oss/dialoguss","owner":"nndi-oss","description":"CLI tool for testing HTTP based USSD applications","archived":false,"fork":false,"pushed_at":"2024-08-08T09:30:32.000Z","size":102,"stargazers_count":17,"open_issues_count":3,"forks_count":9,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-01T06:35:24.507Z","etag":null,"topics":["africastalking","cli","golang","integration-testing","testing","tnm-ussd","ussd","ussd-applications"],"latest_commit_sha":null,"homepage":"https://nndi.cloud/oss/dialoguss/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nndi-oss.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2018-02-28T16:26:18.000Z","updated_at":"2024-09-23T10:25:32.000Z","dependencies_parsed_at":"2024-03-19T00:37:59.213Z","dependency_job_id":"c344fdea-e169-45eb-91dc-a28df298a007","html_url":"https://github.com/nndi-oss/dialoguss","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nndi-oss%2Fdialoguss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nndi-oss%2Fdialoguss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nndi-oss%2Fdialoguss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nndi-oss%2Fdialoguss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nndi-oss","download_url":"https://codeload.github.com/nndi-oss/dialoguss/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253928430,"owners_count":21985793,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["africastalking","cli","golang","integration-testing","testing","tnm-ussd","ussd","ussd-applications"],"created_at":"2025-01-11T02:34:23.315Z","updated_at":"2025-05-13T10:49:35.285Z","avatar_url":"https://github.com/nndi-oss.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Dialoguss\n=========\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"logo-small.png\" /\u003e\n\u003c/p\u003e\n\n`dialoguss` is a cli tool to test USSD applications that are implemented\nas HTTP services - particularly those implemented via:\n\n* [AfricasTalking's](https://africastalking.com/) service or \n* Using [ussd-adapter](https://github.com/saulchelewani/ussd-adapter)\n\n`dialoguss` is useful for testing your USSD applications during development.\n\nIt can be used in two ways:\n1. You can simulate a session and interact with that session via a simple CLI based interface or,\n2. You can describe the steps required for a session and automate the session, i.e. automated testing\n\n## Usage\n\n`dialoguss` requires a YAML file to run. The file describes one application\nand has to contain atleast `url` to the application, `dial` the USSD shortcode for your\napp and a `phoneNumber` to use for the session tests.\n\nFor the automated dialogue tests you are required to define `steps` which\ndescribe the sequence of steps for one USSD session. Steps define the text\nto send to the USSD application and the expected output after sending that \ntext.\n\nPlease refer to the examples below:\n\n### Interactive Dialogue\n\n```yaml\n# app.yaml\nurl: http://localhost:9000/ussd\ndial: *123*1234#\nphoneNumber: 265888123456\n```\n\n```sh\n$ dialoguss --interactive --file=app.yaml simulate\n```\n\n`dialoguss` will start hitting your USSD endpoint to enable you to simulate\ninteraction, the whole session can be performed from the command-line.\n\nAn example output is below:\n\n```\nWhat is your name?\n\u003e name: Zikani\n\nHello Zikani, choose an item:\n1. Account detail\n2. Balance\n3. Something else\n# Exit\n\u003e 2\n\nYour balance is: MK 500\n\u003e ok\n```\n\n### Automated Dialogue\n\n```yaml\n# app.yml\nurl: http://localhost:7654\ndial: \"*1234*1234#\"\n# 'global' phone number, overriden per session\nphoneNumber: 265888123456\nsessions:\n  - id: 12345678910\n    phoneNumber: 265888123456\n    description: \"Should return a balance of 500 for Zikani\"\n    steps:\n      # The first step is the response after dialing the ussd code\n      - expect: \"What is your name?\"\n      - userInput: \"Zikani\"\n        expect: |-\n          Welcome, Zikani\n          Choose an item:\n          1. Account detail\n          2. Balance\n          3. Something else\n          # Exit\n      - userInput: \"2\" \n        expect: \"Your balance is: MK 500\"\n```\n\n```sh\n$ dialoguss --file=app.yml run\nAll steps in session 12345678910 run successfully\n```\n\n## Why should I use this?\n\nGlad you asked! Well, mostly this tool will help you reduce costs \nrelated to testing your USSD applications.\nThe current approach for testing your applications could be to upload \nthe code to your server, pull out your phone and dial the USSD service \ncode linked to your application. \n\n_That's too much work and costs you time and monies!_\n\nYou should use this if you'd like to test your application before deploying \nit to production.\n\n---\n\nCopyright (c) 2018 - 2024, NNDI","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnndi-oss%2Fdialoguss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnndi-oss%2Fdialoguss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnndi-oss%2Fdialoguss/lists"}