spec/models/account_spec.rb in bookingsync-engine-0.4.6 vs spec/models/account_spec.rb in bookingsync-engine-0.5.0
- old
+ new
@@ -59,21 +59,23 @@
end
end
describe "#token" do
let(:expires_at) { 1.day.from_now.to_i }
- let(:account) { Account.create!(uid: 123, oauth_access_token: "token",
+ let!(:account) { Account.create!(uid: 123, oauth_access_token: "token",
oauth_refresh_token: "refresh_token", oauth_expires_at: expires_at) }
context "when the stored token is fresh" do
it "returns the token" do
expect(account.token).to be_a OAuth2::AccessToken
expect(account.token.token).to eq "token"
end
end
context "when the stored token is expired" do
+ self.use_transactional_fixtures = false
+
let(:expires_at) { 1.day.ago.to_i.to_s }
let(:new_expires_at) { 2.days.from_now.to_i.to_s }
let(:token) { double(expired?: true, refresh!: double(token: "refreshed_token",
refresh_token: "refreshed_refresh_token", expires_at: new_expires_at)) }
let(:client) { double }
@@ -82,16 +84,24 @@
expect(BookingSync::Engine).to receive(:oauth_client) { client }
expect(OAuth2::AccessToken).to receive(:new).with(client, "token",
refresh_token: "refresh_token", expires_at: expires_at) { token }
end
+ after do
+ Account.destroy_all
+ end
+
it "refreshes the token" do
expect(token).to receive(:refresh!)
account.token
end
- it "stores the refreshed token" do
- account.token
+ it "stores the refreshed token even with rollback" do
+ Account.transaction do
+ account.token
+ raise ActiveRecord::Rollback
+ end
+
account.reload
expect(account.oauth_access_token).to eq("refreshed_token")
expect(account.oauth_refresh_token).to eq("refreshed_refresh_token")
expect(account.oauth_expires_at).to eq(new_expires_at)
end