Sha256: 133612f9528b07c3dfbc7ae0a8bc4c6de220335bdc1ce9da0a6148bdcf00ee7f

Contents?: true

Size: 1.02 KB

Versions: 5

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

require 'spec_helper'
require 'roqua/type/stripped_string'

RSpec.describe Roqua::Type::StrippedString do
  let(:cls) do
    Class.new(ActiveRecord::Base) do
      self.table_name = 'delayed_jobs'

      attribute :locked_by, Roqua::Type::StrippedString.new
      attribute :queue, Roqua::Type::StrippedString.new(allow_empty: true)
    end
  end

  it "strips whitespace from outside and not inside" do
    expect(described_class.new.cast("   some name   \n  \t \u180E\u200B\u200C\u200D\u2060\uFEFF ")).to eq "some name"
  end

  it "nils empty values by default" do
    expect(described_class.new.cast(" \n \t ")).to eq nil
  end

  it "keeps value empty if allow_empty is true" do
    expect(described_class.new(allow_empty: true).cast(" \n \t ")).to eq ""
  end

  it "works on active_record" do
    instance = cls.new(locked_by: "  \n  \t ", queue: "  \n  \t ", cron: "  \n  \t ")
    expect(instance.locked_by).to be_nil
    expect(instance.queue).to eq ""
    expect(instance.cron).to eq "  \n  \t "
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
roqua-support-0.4.4 spec/roqua/type/stripped_string_spec.rb
roqua-support-0.4.3 spec/roqua/type/stripped_string_spec.rb
roqua-support-0.4.2 spec/roqua/type/stripped_string_spec.rb
roqua-support-0.4.1 spec/roqua/type/stripped_string_spec.rb
roqua-support-0.4.0 spec/roqua/type/stripped_string_spec.rb