docbrown/spec/services
Daniel Uber 0eb4e690ed
Validate payment info present before attempting to process (#15629)
* Add two guards when purchasing credits

This prevents sending an empty card to stripe, and avoids a
foreseeable error when purchasing 0 credits. Error returned from
stripe is "This value must be greater than or equal to 1".

* Move redirect back into action method

Only use validation methods to check input and set appropriate messages.

* Accept organization id if set

The payment service will use the organization id (and charge the
organization) when that's the purchaser. Don't fail when no stripe
token or card selected if an organization admin is purchasing credits.

* Move validation into the payment processing service

This cleans up the number of details the controller needs to worry
about

Now only if the process payment service had any tests...

* Prevent only organization_id from permitting purchase

and move this check to a method, with an intention revealing name

* Add i18n translation for error message

There weren't any service side error messages - this will be displayed
in a view (credits/purchase) but comes from the payment service -
other messages (from stripe) are passed through as-is there.

If this is the wrong _place_ for the translation I can retool.

* Add unit test for payment processing

Only checking errors are raised as expected and the internal error
message is translated.

* Leave translation alone

Revert test translation
2021-12-03 13:09:23 -06:00
..
articles Fixing blank home page for anonymous/visitor (#15665) 2021-12-03 08:32:02 -05:00
audit Remove Audit::Event::Util (#8704) 2020-06-16 12:50:53 -04:00
authentication Avoid email reassignment when connecting OAuth provider (#15609) 2021-12-01 09:13:12 -05:00
badges Skip badge awards for spam accounts (#15344) 2021-11-10 10:48:01 -06:00
broadcasts/welcome_notification Forem passport (cont) (#14759) 2021-09-30 06:47:45 -06:00
color Move HexComparer to Hex::Comparer service (#12202) 2021-01-12 11:34:30 -05:00
credits Refactoring user_controller separating some classes to service (#10384) 2020-10-05 10:41:59 +02:00
discover Add Forem Discover registration worker and service (#14865) 2021-10-01 10:27:31 -04:00
edge_cache ✂✂✂ Remove events (#15062) 2021-10-15 09:31:08 -04:00
exporter Create Settings::SMTP (#13943) 2021-06-14 10:29:43 -04:00
fastly_config Abstract DatadogStatsClient to ForemStatsClient (#12304) 2021-01-27 11:25:44 -05:00
feeds Use tap instead of a temporary variable to modify after create (#15453) 2021-11-22 16:06:11 -06:00
follows Move app/labor/follow_checker.rb to service (#11613) 2020-12-01 14:14:36 +07:00
giphy
github Don't use "not_to raise_error" with specific class (#10602) 2020-10-05 17:29:01 +02:00
homepage Serialize tag flares correctly in Homepage::ArticleSerializer (#13537) 2021-04-27 16:07:05 +02:00
html Rubocop fixes (#14868) 2021-09-30 13:22:09 -04:00
images Fix rotation of images uploaded from iPhones (#15010) 2021-10-11 15:17:14 -04:00
loggers Move LogWorkerQueueStats from labor to services (#11642) 2020-11-30 09:31:15 +07:00
mailchimp Handle GibbonError when Mailchimp api key was not set (#14695) 2021-09-13 10:30:35 -05:00
markdown_processor Remove button from allowed tags (#14434) 2021-08-11 10:48:07 -04:00
mentions Issue #9077 has already been resolved, added specs (#15342) 2021-11-17 11:27:50 +02:00
moderator Replacing User#warned with User#warned? (#15628) 2021-12-01 13:14:16 -05:00
notification_subscriptions Add Article post_commit when user_id changes with specs (#15132) 2021-10-25 10:53:21 +07:00
notifications Don't notify authors about own org posts (#15113) 2021-10-19 21:32:44 +07:00
organizations Organizations delete optimizations and refactoring (#13610) 2021-05-11 12:14:55 +03:00
payments Validate payment info present before attempting to process (#15629) 2021-12-03 13:09:23 -06:00
podcasts handle openssl errors when checking podcast episode for https (#14439) 2021-08-09 12:52:20 -05:00
profile_fields Remove check_box type from profile fields (#14832) 2021-09-30 13:27:39 -04:00
push_notifications Fix Rpush app when creating Android notification (#15529) 2021-11-30 10:05:40 +05:30
re_captcha Rename SiteConfig to Settings::General (#13573) 2021-05-21 14:45:37 +02:00
search Ensuring reading list excludes unpublished articles (#15490) 2021-11-24 13:22:26 -05:00
secrets
settings/authentication Disable all providers when providers_to_enable param is blank (#15260) 2021-11-02 21:20:26 -04:00
slack Rename SiteConfig to Settings::General (#13573) 2021-05-21 14:45:37 +02:00
spam Refactoring Spam Handler (#15412) 2021-11-30 12:45:12 -05:00
tag_moderators ✂✂✂ Remove Connect (#14734) 2021-11-18 08:21:00 -06:00
twitter_client Rename SiteConfig to Settings::General (#13573) 2021-05-21 14:45:37 +02:00
user_subscriptions Update CODEOWNERS and team names in TODO comments (#9460) 2020-07-24 12:17:20 +07:00
users ✂✂✂ Remove Connect (#14734) 2021-11-18 08:21:00 -06:00
webhook [deploy] Rubocop: fix violations of Layout/LineLength (#9197) 2020-07-08 08:36:36 -05:00
analytics_service_spec.rb Add counts for number of views when showing referrers (#14600) 2021-08-27 08:03:43 -05:00
article_with_video_creation_service_spec.rb Use new UserSetting and UserNotificationSettings and Ignore Related User Table Fields (#14121) 2021-07-08 09:31:34 -05:00
bulk_sql_delete_spec.rb Routine rubocop fixes (#10237) 2020-09-08 12:06:47 -04:00
email_digest_article_collector_spec.rb Don't include "anti-followed" tags in email digest (#14782) 2021-09-30 10:44:38 +07:00
email_digest_spec.rb Use new UserSetting and UserNotificationSettings and Ignore Related User Table Fields (#14121) 2021-07-08 09:31:34 -05:00
feature_flag_spec.rb Replace calls to Flipper with FeatureFlag (#11386) 2020-11-12 14:15:33 +01:00
flare_tag_spec.rb [deploy] Optimization: Dont Use Redis For Flare Tag IDs, Load Them On Boot (#8987) 2020-06-30 09:48:08 -05:00
medium_article_retrieval_service_spec.rb
rate_limit_checker_spec.rb Pin posts to feed (#13807) 2021-06-04 10:54:53 +02:00
tag_adjustment_creation_service_spec.rb
tag_adjustment_update_service_spec.rb