{"push_id":2482990324,"size":23,"distinct_size":23,"ref":"refs/heads/develop","head":"c12ae9ea252afc4944761c5a891209e0e4933e58","before":"e7c78eabce1395715da0843b31aceb30d7ff895a","commits":[{"sha":"e111ac730cea8ead73a4f4382855b4fad426b0f1","author":{"name":"Alys","email":"8804e2e7dbd6250a3cb2c62d7a603f3e6c0b0ff6@users.noreply.github.com"},"message":"enable translated pet names in hatching success message (#10231)","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/e111ac730cea8ead73a4f4382855b4fad426b0f1"},{"sha":"5007393f249c729eeceb5733cdc9d9b68b371938","author":{"name":"negue","email":"ceb39b1f37496eec9abb93d1faa38e41edf65b67@users.noreply.github.com"},"message":"enable hair style edit during intro (#10227)","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/5007393f249c729eeceb5733cdc9d9b68b371938"},{"sha":"485c3c5c461069b3ee907045c52a44b254d85c37","author":{"name":"Matteo Pagliazzi","email":"1984e5eb5b7c0dff9df8ef279b5bff017d2b2f49@gmail.com"},"message":"disable failing test","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/485c3c5c461069b3ee907045c52a44b254d85c37"},{"sha":"37fd062cf99f42c4844a8412351212803549e2a6","author":{"name":"Alys","email":"8804e2e7dbd6250a3cb2c62d7a603f3e6c0b0ff6@users.noreply.github.com"},"message":"increase Hourglasses and gemCapExtra promptly when multi-month subscription renews - fixes #4819 (#10147)\n\n* allow Hourglasses and gemCapExtra to increase promptly after a multi-month subscription has renewed\r\n\r\n* fix existing Hourglass and Gem Cap tests that were wrong\r\n\r\nThe scenario originally used for these two tests was a six-month recurring\r\nsubscription (you can tell that from the starting offset having a non-zero value).\r\nFor recurring subscriptions, we do NOT want to increase the consecutive month\r\nbenefits as soon as the sixth month starts because the user has already been\r\ngiven a full six months' benefits in advance and they might cancel the\r\nsubscription before it renews later in the sixth month.\r\nTherefore we want to give the extra benefits at the beginning of the seventh\r\nmonth (ideally we'd give them mid-month in the sixth month when the renewal\r\nhappens but we don't have support for tracking renewal dates).\r\nSo, the two changed tests were actually not correct for the case\r\nwhere the offset started as non-zero.\r\n\r\nThese tests are correct for one-month recurring subscriptions (when the offset\r\nis never set to anything above zero). The user isn't meant to get any consecutive\r\nmonth benefits until a multiple of 3 months has been reached.\r\n\r\n* add tests for one-month recurring subscription before 3x months are reached\r\n\r\n* add tests for 3-, 6-, and 12-month recurring subscriptions\r\n\r\nThe 3-month tests are the most thorough, stepping through the\r\nexpected start and end values of consecutive data for a 7-month\r\nrange.\r\n\r\nThe 6-month tests are a bit less thorough since the same code is\r\nused for all multi-month periods.\r\nThe discount Google subscription code is used to ensure we keep\r\nsupport for it.\r\n\r\nThe 12-month tests are less thorough still, since again the same\r\ncode is used.\r\n\r\nI'm about to try some more tests with `useFakeTimers`, which should\r\nbe a better way to test the code since they won't rely on me having\r\nset the initial values correctly for each test. :) But I wanted to\r\nwork through these cases manually first to ensure my understanding\r\nof how the values should change does actually match the code.\r\n\r\n* add tests for 1-, 3-, 6-, and 12-month recurring subscriptions using clock changes to simulate passing months\r\n\r\nAlso fixed the clock call in an unrelated test because it was forming\r\nthe date incorrectly (`unix()` can't be used to create a date).\r\n\r\nAlso changed email@email.email to email@example.com because\r\nemail@email.email is potentially a real email address.\r\n\r\n* add tests for 3-month gift subscriptions - no extra consecutive benefits given\r\n\r\n* add tests for consecutive benefits for 6-month recurring subscription that has incorrect consecutive month data because it started before issue #4819 was fixed\r\n\r\n* fix lint errors\r\n\r\n* remove outdated subscription tests","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/37fd062cf99f42c4844a8412351212803549e2a6"},{"sha":"fb4d3e44d314a3c85fc4af8bf55154e2e7f92777","author":{"name":"Alys","email":"8804e2e7dbd6250a3cb2c62d7a603f3e6c0b0ff6@users.noreply.github.com"},"message":"improve code and tests for banned words and slurs (#10211)\n\n* remove removePunctuationFromString function from test code\r\n\r\nIt's not needed now that the test banned words don't contain underscores.\r\n\r\n* prevent tests accidentally throwing messageGroupChatSpam\r\n\r\nThis commit makes the user for most tests have contributor tiers so\r\nthat the user can't trigger the messageGroupChatSpam error message\r\n(for posting messages too quickly).\r\n\r\nThis is useful when some of the tests fail due to broken code\r\nbecause that makes more messages be posted than expected. If the user\r\ndoesn't have tiers, the messageGroupChatSpam error message would be\r\ntriggered, which gives misleading information about the test failure.\r\n\r\n* add tests for banned swear and slur words posted in mixed case\r\n\r\n* allow banned word error message to show bad words in the same case the user typed them\r\n\r\n* stop using randomly-chosen real banned words in tests\r\n\r\nThe test modified in this commit had been using real banned words,\r\nwhich meant that those words were being displayed to the contributors\r\nwhen the test failed.\r\n\r\nNB the 'check all banned words are matched' test also uses the real\r\nbanned words but the test failure messages don't show the words.\r\n\r\n* improve translatability of bannedWordUsed error message","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/fb4d3e44d314a3c85fc4af8bf55154e2e7f92777"},{"sha":"1c1b0f00adf94bdf781cc01531ca1882e59e1cea","author":{"name":"Matteo Pagliazzi","email":"1984e5eb5b7c0dff9df8ef279b5bff017d2b2f49@gmail.com"},"message":"reorganize payments files (#10235)","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/1c1b0f00adf94bdf781cc01531ca1882e59e1cea"},{"sha":"ec2a1927a0d88ec54112c1517f11ac984a2367b3","author":{"name":"Brian Fenton","email":"760e7dab2836853c63805033e514668301fa9c47@brianfenton.us"},"message":"adding name attribute to radio inputs so browser inforces selecting a single item from the named set (#10236)","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/ec2a1927a0d88ec54112c1517f11ac984a2367b3"},{"sha":"9db714185311fc99dda92f5f09c0de7ee614169d","author":{"name":"Isaac Lim","email":"385b4b4f3f4cca74db0b24e727d62adc615c7776@users.noreply.github.com"},"message":"Added meta image for social media sharing (#10193)\n\n* Add meta image for social media sharing\r\n\r\n* Meta Image in Images\r\n\r\n* Update index.html","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/9db714185311fc99dda92f5f09c0de7ee614169d"},{"sha":"d5a8259fdb1b51b86cb2ce0d98e232c6e271cdcf","author":{"name":"Matteo Pagliazzi","email":"1984e5eb5b7c0dff9df8ef279b5bff017d2b2f49@gmail.com"},"message":"fix members modals (#10240)","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/d5a8259fdb1b51b86cb2ce0d98e232c6e271cdcf"},{"sha":"06181d0a1af65ff9c54ce92628df160e71ef714d","author":{"name":"SabreCat","email":"fc4737835a20d3f9b576881d5f5aa70cbb1e5b9f@gmail.com"},"message":"feat(content): Squirrel Pet Quest","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/06181d0a1af65ff9c54ce92628df160e71ef714d"},{"sha":"25e5e783737fe1c102820369a6cb82a168f3538a","author":{"name":"SabreCat","email":"fc4737835a20d3f9b576881d5f5aa70cbb1e5b9f@gmail.com"},"message":"chore(sprites): compile","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/25e5e783737fe1c102820369a6cb82a168f3538a"},{"sha":"85c4e93763183e0f5f3f216f57ef6a6fa98a61c4","author":{"name":"Sabe Jones","email":"fc4737835a20d3f9b576881d5f5aa70cbb1e5b9f@gmail.com"},"message":"chore(i18n): update locales","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/85c4e93763183e0f5f3f216f57ef6a6fa98a61c4"},{"sha":"c54ce960337dcd1f2ca9fac52ef58a706f38c972","author":{"name":"Sabe Jones","email":"fc4737835a20d3f9b576881d5f5aa70cbb1e5b9f@gmail.com"},"message":"4.37.0","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/c54ce960337dcd1f2ca9fac52ef58a706f38c972"},{"sha":"fa945c768949bf00adba2281483677cb66dc2c8c","author":{"name":"Sabe Jones","email":"fc4737835a20d3f9b576881d5f5aa70cbb1e5b9f@gmail.com"},"message":"Merge branch 'release' into develop","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/fa945c768949bf00adba2281483677cb66dc2c8c"},{"sha":"71c9e7a6854ceb8c3c4664f06e6f398b0c593333","author":{"name":"Matteo Pagliazzi","email":"1984e5eb5b7c0dff9df8ef279b5bff017d2b2f49@gmail.com"},"message":"Tasks Modal: add setter for repeatsOn (#10247)\n\n* fix for 10236, add setter to repeatsOn\r\n\r\n* remove console.log","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/71c9e7a6854ceb8c3c4664f06e6f398b0c593333"},{"sha":"1c3e043fac622c6052d47b4237a054c3d213e6d4","author":{"name":"Sabe Jones","email":"fc4737835a20d3f9b576881d5f5aa70cbb1e5b9f@gmail.com"},"message":"chore(i18n): update locales","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/1c3e043fac622c6052d47b4237a054c3d213e6d4"},{"sha":"ace02893e5519667d84a20dc9379b1ab819812bf","author":{"name":"Sabe Jones","email":"fc4737835a20d3f9b576881d5f5aa70cbb1e5b9f@gmail.com"},"message":"4.37.1","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/ace02893e5519667d84a20dc9379b1ab819812bf"},{"sha":"1ea9be8aa294451391e1776ce6e2642403ec2911","author":{"name":"Matteo Pagliazzi","email":"1984e5eb5b7c0dff9df8ef279b5bff017d2b2f49@gmail.com"},"message":"Preparatory Work for Smaller user doc (WIP) (#10245)\n\n* protect all paths in user.pre(save using this.isDirectSelected to see if a field is available\r\n\r\n* fix linting\r\n\r\n* authWithHeaders: specify user fields to exclude instead of the ones to include, add comments, doc and improve test\r\n\r\n* add more options to unit helper generateReq and add tests for excluding fields in authWithHeaders","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/1ea9be8aa294451391e1776ce6e2642403ec2911"},{"sha":"acbca4d1dc12cd35792110b2101817ae071e1f17","author":{"name":"Matteo Pagliazzi","email":"1984e5eb5b7c0dff9df8ef279b5bff017d2b2f49@gmail.com"},"message":"upgrade deps","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/acbca4d1dc12cd35792110b2101817ae071e1f17"},{"sha":"8f1d241e835d9a6d1a960b2ef345e684d5d18847","author":{"name":"negue","email":"ceb39b1f37496eec9abb93d1faa38e41edf65b67@users.noreply.github.com"},"message":"if a pet is still hatchable show the hatchable - icon instead of the \"you already own the mount\"-icon (#10243)","distinct":true,"url":"https://api.github.com/repos/JSn1nj4/habitica/commits/8f1d241e835d9a6d1a960b2ef345e684d5d18847"}]}
{"actor":{"display_login":"JSn1nj4"}}