Sha256: 2f77106ecd450c18b7e6de46f01b137131b93a0b87b725761f881208e65a9ae1

Contents?: true

Size: 1.36 KB

Versions: 6

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

require "test_helper"

class ValidatesUsernameTest < Minitest::Test
  test "rejects invalid username" do
    model = build_model do
      attr_accessor :username
      validates_username :username
    end

    instance = model.new(username: "1234")

    refute instance.valid?
    assert_includes instance.errors[:username], "is invalid"
  end

  test "rejects reserved username" do
    model = build_model do
      attr_accessor :username
      validates_username :username
    end

    instance = model.new(username: "www")

    refute instance.valid?
    assert_includes instance.errors[:username],
                    "www is a reserved username"
  end

  test "rejects reserved username with pattern" do
    model = build_model do
      attr_accessor :username
      validates_username :username
    end

    instance = model.new(username: "www1234")

    refute instance.valid?
  end

  test "uses custom list" do
    model = build_model do
      attr_accessor :username
      validates_username :username, in: %w[nope]
    end

    instance = model.new(username: "nope")

    refute instance.valid?
  end

  test "ignores reserved username validation" do
    model = build_model do
      attr_accessor :username
      validates_username :username, reserved: false
    end

    instance = model.new(username: "www")

    assert instance.valid?
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
validators-3.4.2 test/validators/validates_username_test.rb
validators-3.4.1 test/validators/validates_username_test.rb
validators-3.4.0 test/validators/validates_username_test.rb
validators-3.3.0 test/validators/validates_username_test.rb
validators-3.2.1 test/validators/validates_username_test.rb
validators-3.2.0 test/validators/validates_username_test.rb