Files
rynDNS/spec/factories/clients.rb
2021-02-25 00:04:34 -05:00

66 lines
2.3 KiB
Ruby

# 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