# frozen_string_literal: true FactoryBot.define do factory :client do name { random_string } name_id { Faker::Internet.base64(length: 8, padding: false) } api_key_hash { bcrypt_fake_hash } description { Faker::String.random(length: 0..200) } perm_r { Faker::Boolean.boolean } perm_w { Faker::Boolean.boolean } perm_x { false } # dont want to create random admin accounts public_ip { Faker::Boolean.boolean } ipv4 { empty_or_fake(Faker::Internet.public_ip_v4_address) } end # premade clients # NOTE: api key and hash are hardcoded to speed up testing factory :admin, class: 'Client' do name { 'admin' } name_id { 'd5d40cd9' } # api_key { 'e2s1BsQEqmSE5MqyHYbDBVxGr/KY4BYIV5QkdjiCOF0=' } api_key_hash { '$2y$08$peZ67RvHVjBmfhUkE8tBtexMRka9w4CPBk7dJfSp5VM4HMWxX8p/y' } description { 'e2s1BsQEqmSE5MqyHYbDBVxGr/KY4BYIV5QkdjiCOF0=' } # misusing description to access api key in rspec perm_r { true } perm_w { true } perm_x { true } public_ip { false } ipv4 { '' } end factory :public, class: 'Client' do name { 'public_client.com.' } name_id { '23acfa41' } # api_key { 'Tn32gdYAlo1yY6RerRtwCO8KNrqFbh9m0ijyHPDqQJs=' } api_key_hash { '$2y$08$2AMXQs/VQMIxyJBLeBr1vOiSX2NnEPE7RHberXMUD2B8uNx/SpGX2' } description { 'Public Account' } perm_r { false } perm_w { true } perm_x { false } public_ip { true } ipv4 { '153.25.33.4' } end factory :read, class: 'Client' do name { 'read_client' } name_id { '438fc1d4' } # api_key { 'E1JtENz4PMLlFQzM63PyWjVIk1PunZPieYueYdM8I34=' } api_key_hash { '$2y$08$a0v8JSbnHdKPqzqoZEg0qO1KHmt5TCiJSz.ICUl/MztuRw6vuNzJm' } description { 'E1JtENz4PMLlFQzM63PyWjVIk1PunZPieYueYdM8I34=' } # misusing description to access api key in rspec perm_r { true } perm_w { false } perm_x { false } public_ip { false } ipv4 { '' } end factory :write, class: 'Client' do name { 'write_client' } name_id { '7490d4ea' } # api_key { 'Ll8XPUfDfKs5WHuY0Is/MKC8Lv3ysEgQOUc+Ya3HcuY=' } api_key_hash { '$2y$08$qoo/wj5eytLQzl6bYLpPyuERdoPizOqkaq/EPIT4R8c8CADfwIQ7C' } description { 'Ll8XPUfDfKs5WHuY0Is/MKC8Lv3ysEgQOUc+Ya3HcuY=' } # misusing description to access api key in rspec perm_r { false } perm_w { true } perm_x { false } public_ip { false } ipv4 { '44.2.55.12' } end end