Sha256: 66324994d6ae58bdd1652c42fb299e70f7276d5d7add067ef6114af186b21deb

Contents?: true

Size: 1.9 KB

Versions: 4

Compression:

Stored size: 1.9 KB

Contents

require 'rails_helper'

RSpec.describe "Unsakini::Boards", type: :request do

  let(:valid_board_params) {
    {
      :board => {:name => "board name"},
      :encrypted_password => Faker::Crypto.md5
    }
  }
  let(:invalid_board_name_param) {
    {
      :board => {:name => nil},
      :encrypted_password => Faker::Crypto.md5
    }
  }
  let(:invalid_encrypted_password_param) {
    {
      :board => {:name => "board name"},
      :encrypted_password => nil
    }
  }

  context "Shared Board" do

    before(:each) do
      user_has_shared_board_scenario
    end

    describe "GET /unsakini/boards/:id" do

      it "returns http unauthorized" do
        get unsakini_board_path(@shared_board)
        expect(response).to have_http_status(:unauthorized)
      end

      it "returns board resource" do
        get unsakini_board_path(@shared_board), headers: auth_headers(@user_2)
        expect(response).to have_http_status(:ok)
        expect(response.body).to match_json_schema(:board)
        expect(response.body).to be_json_eql(serialize(@shared_user_board_2))
      end
    end

    describe "PUT /unsakini/boards/:id" do
      it "updates the board resource" do
        put unsakini_board_path(@shared_board), params: valid_board_params, headers: auth_headers(@user_2), as: :json
        expect(response).to have_http_status(:forbidden)
        @shared_board.reload
        expect(@shared_board.name).not_to eq(valid_board_params[:board][:name])
        expect(@shared_user_board_2.encrypted_password).not_to eq(valid_board_params[:encrypted_password])
      end
    end

    describe "DELETE /unsakini/boards/:id" do

      it "returns http forbidden if not board owner" do
        delete unsakini_board_path(@shared_board), headers: auth_headers(@user_2), as: :json
        expect(response).to have_http_status(:forbidden)
        expect(Unsakini::Board.find(@shared_board.id)).not_to be_nil
      end
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
unsakini-0.0.5 spec/requests/boards/shared_board_spec.rb
unsakini-0.0.5.pre.1 spec/requests/boards/shared_board_spec.rb
unsakini-0.0.4.pre.1 spec/requests/boards/shared_board_spec.rb
unsakini-0.0.4.3 spec/requests/boards/shared_board_spec.rb