Skip to content

Refactor Service#test to use service object

What does this MR do?

Context: This is the backend refactor that will allow the frontend to pass in a parameter event so a service can be tested with different events. Currently, it only works with push_event data which is very limiting.

  • Extract testing of service functionality to use a service object to move logic away from controller.
  • Re-use shared code between testing a webhook and a service at the project level to a shared concern.
  • Refactor app/services/test_hooks/base_service.rb to remove usage of throw / catch and replace with sending an object with error message.
  • Allow passing event to the service class to enable testing with different types of events.

Screenshots

N.A.

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by 🤖 GitLab Bot 🤖

Merge request reports