diff --git a/spec/acceptance/languages_spec.rb b/spec/acceptance/languages_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..e01cacbfb1123177d2ef1f997510f4d32c421e3c --- /dev/null +++ b/spec/acceptance/languages_spec.rb @@ -0,0 +1,36 @@ +require 'acceptance_helpers' + +resource 'Languages' do + header 'Accept', 'application/json' + header 'Content-Type', 'application/json' + + before { 12.times { create(:language) } } + + let(:languages) { Language.all } + + get '/v1/languages' do + parameter :limit, 'Limit of languages' + parameter :offset, 'Offset of languages' + + let(:limit) { 12 } + let(:offset) { 0 } + + example_request 'Get a list of languages' do + # active model serializer may render model associations in different order for collections (array of items), so we're verifing only returned ids + expect(JSON.parse(response_body).map { |o| o['id'] }.sort).to eq(Language.limit(limit).offset(offset).pluck(:id).sort) + expect(status).to eq(200) + end + end + + get '/v1/languages/:id' do + let(:id) { languages.first.id } + + example 'Get a language' do + do_request + expect(path).to eq("/v1/languages/#{id}") # `:id` is replaced with the value of `id` + expect(response_body).to eq(Helper.serialize(Language.find(id))) + expect(status).to eq(200) + end + end + +end diff --git a/spec/acceptance/mime_types_spec.rb b/spec/acceptance/mime_types_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..c6b853b719d6c0d5997fbb0057f2955e711570d3 --- /dev/null +++ b/spec/acceptance/mime_types_spec.rb @@ -0,0 +1,36 @@ +require 'acceptance_helpers' + +resource 'MimeTypes' do + header 'Accept', 'application/json' + header 'Content-Type', 'application/json' + + before { 12.times { create(:mime_type) } } + + let(:mime_types) { MimeType.all } + + get '/v1/mime_types' do + parameter :limit, 'Limit of mime_types' + parameter :offset, 'Offset of mime_types' + + let(:limit) { 12 } + let(:offset) { 0 } + + example_request 'Get a list of mime_types' do + # active model serializer may render model associations in different order for collections (array of items), so we're verifing only returned ids + expect(JSON.parse(response_body).map { |o| o['id'] }.sort).to eq(MimeType.limit(limit).offset(offset).pluck(:id).sort) + expect(status).to eq(200) + end + end + + get '/v1/mime_types/:id' do + let(:id) { mime_types.first.id } + + example 'Get a mime_type' do + do_request + expect(path).to eq("/v1/mime_types/#{id}") # `:id` is replaced with the value of `id` + expect(response_body).to eq(Helper.serialize(MimeType.find(id))) + expect(status).to eq(200) + end + end + +end diff --git a/spec/factories/languages.rb b/spec/factories/languages.rb index 4e227e54637a29a60a4618711c29f365ef916b8b..9c027beee24eeb172989629d236a9253ee7fdc10 100644 --- a/spec/factories/languages.rb +++ b/spec/factories/languages.rb @@ -5,6 +5,6 @@ FactoryGirl.define do end sequence :code do |i| - "BR#{i}" + "TT#{i}" end end diff --git a/spec/factories/mime_types.rb b/spec/factories/mime_types.rb new file mode 100644 index 0000000000000000000000000000000000000000..b10761335261377d3ada9cb300f3cee690f7acc6 --- /dev/null +++ b/spec/factories/mime_types.rb @@ -0,0 +1,6 @@ +FactoryGirl.define do + factory :mime_type do |m| + m.mime_type { Faker::File.mime_type} + m.extension { Faker::File.extension} + end +end