# frozen_string_literal: true require 'rails_helper' RSpec.describe Client do describe "#validation" do specify { expect(build(:client)).to be_valid } specify { expect(build(:client, redirect_uris: nil)).to be_invalid } specify { expect(build(:client, redirect_uris: [])).to be_invalid } specify { expect(build(:client, redirect_uris: [''])).to be_invalid } specify { expect(build(:client, redirect_uris: ['invalid'])).to be_invalid } specify { expect(build(:client, redirect_uris: 'invalid')).to be_invalid } specify { expect(build(:client, name: nil)).to be_invalid } end describe "#redirect_url" do subject { build(:client) } let(:code) { SecureRandom.uuid } let(:redirect_uri) { subject.redirect_uris[0] } specify { expect(subject.redirect_url(code: code)).to eql("#{redirect_uri}#code=#{code}") } specify { expect { subject.redirect_url(state: '') }.to raise_error(URI::InvalidURIError) } end end