{"id":20694933,"url":"https://github.com/heedrox/tcr-mars-rover","last_synced_at":"2026-04-21T11:36:03.615Z","repository":{"id":80788279,"uuid":"163582616","full_name":"heedrox/tcr-mars-rover","owner":"heedrox","description":"Mars Rover Kata implemented through TCR (test commit revert)","archived":false,"fork":false,"pushed_at":"2018-12-30T14:44:01.000Z","size":92,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-17T18:03:00.068Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/heedrox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-12-30T11:34:38.000Z","updated_at":"2019-01-01T13:19:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"d39e182a-fccc-462d-a367-4b7fccde2c43","html_url":"https://github.com/heedrox/tcr-mars-rover","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heedrox%2Ftcr-mars-rover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heedrox%2Ftcr-mars-rover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heedrox%2Ftcr-mars-rover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heedrox%2Ftcr-mars-rover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heedrox","download_url":"https://codeload.github.com/heedrox/tcr-mars-rover/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242958580,"owners_count":20212836,"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":[],"created_at":"2024-11-17T00:07:19.530Z","updated_at":"2025-12-24T11:14:02.797Z","avatar_url":"https://github.com/heedrox.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TCR Mars Rover\n\nMy first implementation of a kata through TCR.\n\nBased on skeleton: https://github.com/jmarti-theinit/test-commit-revert-node\n\nIt uses Mocha + Chai + Sinon.\n\n# About the Mars Rover Kata\n\nhttp://kata-log.rocks/mars-rover-kata\n\nRequirements\n- You are given the initial starting point (x,y) of a rover and the direction (N,S,E,W) it is facing.\n- The rover receives a character array of commands.\n- Implement commands that move the rover forward/backward (f,b).\n- Implement commands that turn the rover left/right (l,r).\n- Implement wrapping from one edge of the grid to another. (planets are spheres after all)\n- Implement obstacle detection before each move to a new square. If a given sequence of commands encounters an obstacle, the rover moves up to the last possible point, aborts the sequence and reports the obstacle.\n\n# About TCR\n\nTCR (test, commit || revert), is a new way of developing, with similar basics to TDD. But with added constraints.\n\nTCR forces you to make baby steps, through one constraint: every time tests fail, you must revert your code.\n\nLearn more about this here:\n\nhttps://medium.com/@kentbeck_7670/test-commit-revert-870bbd756864\n\n# About TCR-CLI\n\ntcr-cli is the command line interface I developed that has all the test \u0026\u0026 (commit || revert) logic.\n\n# This repo\n\nThis repo is an attempt to test if TCR can work in a real environment (at least in a Kata).\n\nAnd to test also tcr-cli.\n\n# Learnings and Reflections\n\n- Generally forces you to create two tests (the dummy and the one that really validates)\n- The commit history is based on test cases, and I think that's cool (the problem are refactors)\n- I thought it was going to be a problem when saving multiple files, but it is not (because of watch delay)\n- Tests passing are a free moment =\u003e refactors and everything are cool\n- Synchronize all the time (mainly when refactor and fail) command + alt + Y\n- Ejemplo isMovingCommand and isMoveCommand =\u003e he ido generando la otra, y cuando ya he visto que compilaba, la he swapeado.\n- Veo menos el mensaje de error, ya que ya sé cuál es (excepto excepciones)\n- console.log makes it appear in your log commit.\n(For Mars Kata Reflections)\n- I implemented the detection of obstacle signaling through Exception.\n- I dont think obstacles should be injected, should they? whose responsability is the obstacle detection?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheedrox%2Ftcr-mars-rover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheedrox%2Ftcr-mars-rover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheedrox%2Ftcr-mars-rover/lists"}