Sha256: 8bc3501026177bed2286795a2d5763b2fc69cc8820e4fac5c940b715c596e3d4

Contents?: true

Size: 1.69 KB

Versions: 1

Compression:

Stored size: 1.69 KB

Contents

# encoding: utf-8
require "spec_helper"

module Okei
  describe "GET api/v1/units" do

    # ==========================================================================
    # Prepare environment
    # ==========================================================================

    let!(:nmile) { create :unit, code: "МИЛЬ", measure: "ДЛИНА" }
    let!(:mole)  { create :unit, code: "МОЛЬ", measure: "ПРОЧИЕ" }

    # ==========================================================================
    # Prepare variables
    # ==========================================================================

    def call_request(params = {})
      get "okei/api/v1/units", params
    end

    let(:uuids) do
      JSON.parse(response.body)["units"].map { |unit| unit["uuids"] }.flatten
    end

    # ==========================================================================
    # Run tests
    # ==========================================================================

    context "without params" do

      before { call_request }

      it "responds with 200" do
        expect(response.status).to eq 200
      end

      it "receives proper json" do
        expect(response.body).to match_json_schema(:get_units)
      end

      it "receives all units" do
        expect(uuids).to eq [nmile.uuid, mole.uuid]
      end
    end

    context "with measure" do

      before { call_request "measure" => "ДЛИНА" }

      it "responds with 200" do
        expect(response.status).to eq 200
      end

      it "receives proper json" do
        expect(response.body).to match_json_schema(:get_units)
      end

      it "receives matched units" do
        expect(uuids).to eq [nmile.uuid]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
okei-1.0.0.pre.rc spec/requests/okei/api/v1/get_units_spec.rb