Sha256: 8400558916111e64187e0d27b3209b1a4413eddfcc9c9ea6f69e8e98fbbbf22c
Contents?: true
Size: 1.41 KB
Versions: 1
Compression:
Stored size: 1.41 KB
Contents
# frozen_string_literal: true require 'spec_helper' describe Azeroth::ParamsBuilder do subject(:params_builder) do described_class.new(model: model, builder: builder) end let(:model) { Azeroth::Model.new(:document, options) } let(:options) { Azeroth::Options.new } let(:builder) { Sinclair.new(klass) } let(:klass) { Class.new(ParamsBuilderController) } before do params_builder.append end describe '#append' do it 'adds id method' do expect { builder.build } .to add_method(:document_id).to(klass) end it 'adds params method' do expect { builder.build } .to add_method(:document_params).to(klass) end describe 'after the build' do let(:controller) { klass.new(id, attributes) } let(:document) { create(:document) } let(:attributes) { document.attributes } let(:id) { Random.rand(10..100) } let(:expected_attributes) do { 'name' => document.name, 'reference' => document.reference } end before { builder.build } context 'when requesting id' do it 'returns id from request path' do expect(controller.document_id).to eq(id) end end context 'when requesting params' do it 'returns payload' do expect(controller.document_params.to_h) .to eq(expected_attributes) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
azeroth-1.0.0 | spec/lib/azeroth/params_builder_spec.rb |