class CmQuiz::Review::CreateIdea

Public Class Methods

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

Public Instance Methods

run() click to toggle source
# File lib/cm_quiz/review/create_idea.rb, line 10
def run
  jwt, _ = Factory::User.new({
    project_api: @project_api
  }).create

  res = send_create_idea_request({
    jwt: jwt,
    content: 'test-content',
    impact: 7,
    ease: 8,
    confidence: 9
  })
  payload = JSON.parse(res.body)

  expect(payload['impact']).to eq(7), "expect impact equal 7, but got #{payload['impact']}"
  expect(payload['ease']).to eq(8), "expect ease equal 8, but got #{payload['ease']}"
  expect(payload['confidence']).to eq(9), "expect confidence equal 9, but got #{payload['confidence']}"
  expect(payload['average_score']).to eq(8.0), "expect average_score equal 8, but got #{payload['average_score']}"
end

Private Instance Methods

send_create_idea_request(jwt:, content:, impact:, ease:, confidence:) click to toggle source
# File lib/cm_quiz/review/create_idea.rb, line 32
def send_create_idea_request(jwt:, content:, impact:, ease:, confidence:)
  @options = {
    headers: {
      'x-access-token' => jwt
    },
    body: {
      content: content,
      impact: impact,
      ease: ease,
      confidence: confidence
    }
  }

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