This test seems to occasionally start failing (another coder reported the same thing happening to them in the blacksmiths’ guild) because the order in which the tasks are created can sometimes not match the order in the array. So I have sorted the tasks array after creation by the task name to ensure a consistent ordering, and slightly reordered the expect statements to match.
* Added all ui components back
* Added group ui items back and initial group approval directive
* Added ability to mark tasks as requires approval. Added approvals ctrl. Added get approvals method to tasks service
* Added approval list view with approving functionality
* Added error to produce message when task requests approval
* Added notification display for group approvals
* Fixed notification read and adding task
* Fixed syncing with group approval required
* Added group id to notifications for redirect on client side
* Fixed approval request tests
* Fixed linting issues
* Removed expectation from beforeEach
* Moved string to locale
* Added eslint ignore
* Updated notification for group approved, added new icons, and updated styles
* Hid group plan ui
* Added payment to groups and pay with group plan with Stripe
* Added edit card for Stripe
* Added stripe cancel
* Added subscribe with Amazon payments
* Added Amazon cancel for group subscription
* Added group subscription with paypal
* Added paypal cancel
* Added ipn cancel for Group plan
* Added a subscription tab and hid only the task tab when group is not subscribed
* Fixed linting issues
* Fixed tests
* Added payment unit tests
* Added back refresh after stripe payment
* Fixed style issues
* Limited grouop query fields and checked access
* Abstracted subscription schema
* Added year group plan and more access checks
* Maded purchase fields private
* Removed id and timestampes
* Added else checks to ensure user subscription is not altered. Removed active field from group model
* Added toJSONTransform function
* Moved plan active check to other toJson function
* Added check to see if purchaed has been populated
* Added purchase details to private
* Added correct data usage when paying for group sub
* Added initial group tasks ui
* Changed group compnent directory
* Added group task checklist support
* Added checklist support to ui
* Fixed delete tags route
* Added checklist routes to support new group tasks
* Added assign user tag input
* Added new group members autocomplete directive
* Linked assign ui to api
* Added styles
* Limited tag use
* Fixed line endings
* Updated to new file structure
* Fixed failing task tests
* Updatd with new checklist logic and fixed columns
* Updated add task function
* Added userid check back to tag routes
* Added back routes accidently deleted
* Added locale strings
* Moved common task function to task service
* Removed files from manifest
* Added initial group tasks ui
* Changed group compnent directory
* Added checklist support to ui
* Added assign user tag input
* Added assign user tag input
* Added new group members autocomplete directive
* Added new group members autocomplete directive
* Removed group get tasks until live
* Linked assign ui to api
* Added styles
* Added server code for claiming a task
* ADded group task meta and claim button
* Adjusted styles, added local, and added confirm
* Updated claim with new file structures
* Fixed merge issue
* Removed extra file
* Removed duplicate functions
* Removed extra directive
* Removed dev items
* fix(subscriptions): round up months
* fix(subscriptions): resub improvements
Don't allow negative extraMonths; flatten new Dates to YYYYMMDD
* fix(subscriptions): remove resub Gems exploit
Also standardizes some uses of new Date() to remove potential race condition oddities.
* fix(subscriptions): bump consecutive months...
...even if the user didn't log in then, if subscription has been continuous through that period
* test(subscriptions): cover fix cases
Also refactor: use constant for YYYY-MM format
* refactor(subscriptions): don't stringify moments
* Added initial group tasks ui
* Changed group compnent directory
* Added group task checklist support
* Added checklist support to ui
* Fixed delete tags route
* Added checklist routes to support new group tasks
* Added assign user tag input
* Added new group members autocomplete directive
* Linked assign ui to api
* Added styles
* Limited tag use
* Fixed line endings
* Updated to new file structure
* Fixed failing task tests
* Updatd with new checklist logic and fixed columns
* Added purchased info to group and prevented non purchased group from seeing new group tasks
* Updated add task function
* Added userid check back to tag routes
* Marked tag tests as pending
* Added comments to pending tests
* Added back routes accidently deleted
* Added locale strings
* Other clarity fixes
* Moved common task function to task service
* Removed files from manifest
* Fixed naming collision and remove logic
* Removed group get tasks until live
* Fixed test to check update task. Removed extra removeTask call. Synced updated checklists. Added purchased to noset
* Fixed delete group task
* refactor: Move translate test utility to helpers directory
* Add kind property to webhooks
* feat: Add options to create webhook route
* refactor: Move webhook ops into single file
* refactor: Create webhook objects for specific webhook behavior
* chore(tests): Add default sleep helper value of 1 second
* feat(api): Add method for groups to send out webhook
* feat(api): Add taskCreated webhook task creation
* feat(api): Send chat webhooks after a chat is sent
* refactor: Move webhook routes to own controller
* lint: Correct linting errors
* fix(api): Correct taskCreated webhook method
* fix(api): Fix webhook logging to only log when there is an error
* fix: Update groupChatRecieved webhook creation
* chore: Add integration tests for webhooks
* fix: Set webhook creation response to 201
* fix: Correct how task scored webhook data is sent
* Revert group chat recieved webhook to only support one group
* Remove quest activity option for webhooks
* feat: Send webhook for each task created
* feat: Allow webhooks without a type to default to taskScored
* feat: Add logic for adding ids to webhook
* feat: optimize webhook url check by shortcircuiting if no url is passed
* refactor: Use full name for webhook variable
* feat: Add missing params to client webhook
* lint: Add missing semicolon
* chore(tests): Fix inccorect webhook tests
* chore: Add migration to update task scored webhooks
* feat: Allow default value of webhook add route to be enabled
* chore: Update webhook documentation
* chore: Remove special handling for v2
* refactor: adjust addComputedStatsToJSONObject to work for webhooks
* refactor: combine taskScored and taskActivity webhooks
* feat(api): Add task activity to task update and delete routes
* chore: Change references to taskScored to taskActivity
* fix: Correct stats object being passed in for transform
* chore: Remove extra line break
* fix: Pass in the language to use for the translations
* refactor(api): Move webhooks from user.preferences.webhooks to user.webhooks
* chore: Update migration to set webhook array
* lint: Correct brace spacing
* chore: convert webhook lib to use user.webhooks
* refactor(api): Consolidate filters
* chore: clarify migration instructions
* fix(test): Correct user creation in user anonymized tests
* chore: add test that webhooks cannot be updated via PUT /user
* refactor: Simplify default webhook id value
* refactor(client): Push newly created webhook instead of doing a sync
* chore(test): Add test file for webhook model
* refactor: Remove webhook validation
* refactor: Remove need for watch on webhooks
* refactor(client): Update webhooks object without syncing
* chore: update webhook documentation
* Fix migrations issues
* chore: remove v2 test helper
* fix(api): Provide webhook type in task scored webhook
* fix(client): Fix webhook deletion appearing to delete all webhooks
* feat(api): add optional label field for webhooks
* feat: provide empty string as default for webhook label
* chore: Update webhook migration
* chore: update webhook migration name
* Start adding google login
* fix local js issue
* implement syntax suggestions
* fix delete social tests
* Add service for authentication alerts
* fix social login tests
* make suggested google sign in changes
* fix accidentally deleted code
* refactor social network sign in
* fix incorrect find
* implement suggested google sign in changes
* fix(tests): Inject fake Auth module for auth controller
* fix(test): prevent social service from causing page reload
* fix loading user info
* Use lodash's implimentation of find for IE compatibility
* chore: increase test coverage around deletion route
* chore: clean up social auth test
* chore: Fix social login tests
* remove profile from login scope
* fix(api): Allow social accounts to deregister as user has auth backup
* temporarily disable google login button