Sha256: d9e485f31e7848dbff48ae67ad28b7d7e8c56de4df3218e3498960e256ab6281
Contents?: true
Size: 1.55 KB
Versions: 2
Compression:
Stored size: 1.55 KB
Contents
require 'active_support/core_ext/module/attribute_accessors' describe "#{GraphQL::Client} Callbacks" do Client = Class.new(Artemis::Client) do def self.name 'Github' 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.repository(owner: "yuki24", name: "artemis", context: { user_id: 'yuki24' }) document, operation_name, variables, context = Client.before_callback expect(document).to eq(Client::Repository.document) expect(operation_name).to eq('Client__Repository') expect(variables).to eq("name" => "artemis", "owner" => "yuki24") expect(context).to eq(user_id: 'yuki24') end end describe ".after_execute" do it "gets invoked after executing" do Client.user 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
artemis-1.0.0 | spec/callbacks_spec.rb |
artemis-0.9.0 | spec/callbacks_spec.rb |