Sha256: ba4c7f72b0e7f3f4da37d8230535e9c17f9c129ef507bf60c8a12a6d07d264c5

Contents?: true

Size: 1.11 KB

Versions: 4

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

require 'spec_helper'
require 'fortnox/api/types'
require 'fortnox/api/types/examples/types'

describe Fortnox::API::Types::Email do
  let(:klass) { described_class }

  context 'when created with nil' do
    subject { described_class[nil] }

    it { is_expected.to be_nil }
  end

  context 'when created with empty string' do
    subject { described_class[''] }

    it { is_expected.to eq('') }
  end

  context 'when created with valid email' do
    emails = ['valid@example.com', 'kanal_75_ab-faktura@mail.unit4agresso.readsoftonline.com']

    emails.each do |email|
      subject { described_class[input] }

      let(:input) { email }
      it { is_expected.to eq input }
    end
  end

  context 'when created with invalid email' do
    include_examples 'raises ConstraintError', 'te$£@st@example.com'
  end

  context 'when created with more than 1024 characters' do
    legal_characters = 'abcdefghijklmnopqrstuvwxyz0123456789.-_+'.split('')
    too_long_email = (legal_characters * 35).shuffle.join + '@example.com'
    include_examples 'raises ConstraintError', too_long_email
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
fortnox-api-0.6.3 spec/fortnox/api/types/email_spec.rb
fortnox-api-0.6.2 spec/fortnox/api/types/email_spec.rb
fortnox-api-0.6.1 spec/fortnox/api/types/email_spec.rb
fortnox-api-0.6.0 spec/fortnox/api/types/email_spec.rb