Sha256: 62eb8ea62cd8b8c67b16e61143aabd906826c6da9f33a85fce271270fd683c80
Contents?: true
Size: 1.52 KB
Versions: 5
Compression:
Stored size: 1.52 KB
Contents
require 'active_support/core_ext/module/attribute_accessors' describe "#{GraphQL::Client} Callbacks" do Client = Class.new(Artemis::Client) do def self.name 'Metaphysics' end mattr_accessor :before_callback, :after_callback self.before_callback = nil self.after_callback = nil before_execute do |document, operation_name, variables, context| self.before_callback = document, operation_name, variables, context end after_execute do |data, errors, extensions| self.after_callback = data, errors, extensions end end Spotify = Class.new(Artemis::Client) do def self.name 'Spotify' end before_execute do raise "this callback should not get invoked" end after_execute do raise "this callback should not get invoked" end end describe ".before_execute" do it "gets invoked before executing" do Client.artist(id: 'yayoi-kusama', context: { user_id: 'yuki24' }) document, operation_name, variables, context = Client.before_callback expect(document).to eq(Client::Artist.document) expect(operation_name).to eq('Client__Artist') expect(variables).to eq('id' => 'yayoi-kusama') expect(context).to eq(user_id: 'yuki24') end end describe ".after_execute" do it "gets invoked after executing" do Client.artwork data, errors, extensions = Client.after_callback expect(data).to eq("test" => "data") expect(errors).to eq([]) expect(extensions).to eq({}) end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
artemis-0.8.0 | spec/callbacks_spec.rb |
artemis-0.7.0 | spec/callbacks_spec.rb |
artemis-0.6.0 | spec/callbacks_spec.rb |
artemis-0.5.2 | spec/callbacks_spec.rb |
artemis-0.5.1 | spec/callbacks_spec.rb |