class CmQuiz::Review::SignUpUser

Public Class Methods

new(project_api:) click to toggle source
# File lib/cm_quiz/review/sign_up_user.rb, line 6
def initialize(project_api:)
  @project_api = project_api
  @verb = :post
  @path = '/users'
end

Public Instance Methods

run() click to toggle source
# File lib/cm_quiz/review/sign_up_user.rb, line 12
def run
  name = "codementor-test-#{SecureRandom.hex(5)}"
  email = "#{name}@codementor.io"
  password = "pAssw0rd!"
  res = send_sign_up_user_request(email: email, name: name, password: password)
  payload = JSON.parse(res.body)

  expect(payload['jwt'].class).to eq(String), '`jwt` should be string'
  expect(payload['refresh_token'].class).to eq(String), '`refresh_token` should be string'
  build_test_result(self.class)
rescue RSpec::Expectations::ExpectationNotMetError => e
  build_test_result(self.class, false, e.message)
rescue => e
  build_test_result(self.class, false, e.message)
end

Private Instance Methods

send_sign_up_user_request(email:, name:, password:) click to toggle source
# File lib/cm_quiz/review/sign_up_user.rb, line 30
def send_sign_up_user_request(email:, name:, password:)
  @options = {
    body: {
      email: email,
      name: name,
      password: password
    }
  }

  @project_api.request(@verb, @path, @options)
end