Non-tech founder’s guide to choosing the right software development partner Download Ebook
Home>Blog>Graphql files upload testing

Graphql files upload testing

Graphql is not very convenient when it comes to uploading files, but it is possible, for example, gem apollo-upload-server-ruby  is often used for this purpose.

To check file uploads with apollo-upload-server-ruby, I recommend using Altair GraphQL Client it allows you to easily upload files, unlike more well-known competitors such as insomnia.

Unit-testing file uploads with apollo-upload-server-ruby is not very obvious either, by examining the source code of the apollo-upload-server-ruby gem I found that in order for apollo-upload-server-ruby to properly respond to an uploaded file, the following code must be used:


 RSpec.describe Mutations::YourMutation, type: :mutation do

  subject { YourSchema.execute(query, variables: graphql_variables).as_json }





let(:uploaded_file) { Rack::Test::UploadedFile.new('spec/fixtures/files/test.png') }

let(:graphql_variables) { { image: image } }



  let(:image) do

    ApolloUploadServer::Wrappers::UploadedFile.new(

      ActionDispatch::Http::UploadedFile.new(

        tempfile: uploaded_file, filename: File.basename(uploaded_file),

        type: 'image/png'

      )

    )

  end



  def query

    <<~GRAPHQL

       mutation YourMutation($image: Upload!) {

        images(input: { image: $image }) {

          image {

            id

          }

        }

      }



    GRAPHQL

  end

Happy Testing!

Categories:

Recent Projects

We take pride in creating applications that drive growth and evolution, from niche startups to international companies.

Let’s Build Something Great Together

Let’s discuss your project and see how Ruby on Rails can be your competitive advantage.

*By submitting this form, you agree with JetRockets’ Privacy Policy