Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions services/cognito/db/seeds/development/chown_requests.seeds.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# frozen_string_literal: true

after 'development:tenants' do
Tenant.all.each do |tenant|
next if tenant.id.eql? 1

tenant.switch do
FactoryBot.create(:chown_request)
end
end
end
Empty file.
11 changes: 11 additions & 0 deletions services/cognito/db/seeds/development/endpoints.seeds.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# frozen_string_literal: true

after 'development:tenants' do
Tenant.all.each do |tenant|
next if tenant.id.eql? 1

tenant.switch do
FactoryBot.create(:endpoint)
end
end
end
13 changes: 13 additions & 0 deletions services/cognito/db/seeds/development/identifiers.seeds.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# frozen_string_literal: true

after 'development:users' do
Tenant.all.each do |tenant|
next if tenant.id.eql? 1

tenant.switch do
User.all.each do |user|
FactoryBot.create(:identifier, user: user)
end
end
end
end
9 changes: 9 additions & 0 deletions services/cognito/db/seeds/development/metabase_cards.seeds.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# frozen_string_literal: true

after 'development:tenants' do
Tenant.all.each do |tenant|
next if tenant.id.eql? 1

tenant.switch { FactoryBot.create(:metabase_card) }
end
end
4 changes: 2 additions & 2 deletions services/cognito/db/seeds/development/tenants.seeds.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

Tenant.create(schema_name: 'public')
Tenant.find_or_create_by(schema_name: 'public')

1.upto(7) do |id|
Tenant.create!(schema_name: Tenant.account_id_to_schema(id.to_s * 9))
Tenant.find_or_create_by(schema_name: Tenant.account_id_to_schema(id.to_s * 9))
end
56 changes: 45 additions & 11 deletions services/cognito/db/seeds/development/users.seeds.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,53 @@
# User.reset
# file_name = 'cognito_pools.csv'
# User.load_csv(file_name)
Pool.create(name: 'Developers').tap do |pool|
pool.users.create(primary_identifier: 'developer', title: 'Mr', last_name: 'Developer',
phone_number: '+15855551212')
FactoryBot.create(:pool).tap do |pool|
pool.users.find_or_create_by(
primary_identifier: "#{Faker::Job.title}-#{SecureRandom.uuid}",
title: 'Mr',
last_name: 'Developer',
phone_number: '+15855551212'
)
end
Pool.create(name: 'Gold Tier').tap do |pool|
pool.users.create(primary_identifier: 'jones', title: 'Mr', last_name: 'Jones', phone_number: '+1388200363')
pool.users.create(primary_identifier: 'miller', title: 'Mrs', last_name: 'Miller', phone_number: '+1396537757')
pool.users.create(primary_identifier: 'doe', title: 'Miss', last_name: 'Doe', phone_number: '+1382800710')
FactoryBot.create(:pool).tap do |pool|
pool.users.find_or_create_by(
primary_identifier: "#{Faker::Job.title}-#{SecureRandom.uuid}",
title: 'Mr',
last_name: 'Jones',
phone_number: '+1388200363'
)
pool.users.find_or_create_by(
primary_identifier: "#{Faker::Job.title}-#{SecureRandom.uuid}",
title: 'Mrs',
last_name: 'Miller',
phone_number: '+1396537757'
)
pool.users.find_or_create_by(
primary_identifier: "#{Faker::Job.title}-#{SecureRandom.uuid}",
title: 'Miss',
last_name: 'Doe',
phone_number: '+1382800710'
)
end
Pool.create(name: 'Silver Tier').tap do |pool|
pool.users.create(primary_identifier: SecureRandom.uuid, title: 'Ms', last_name: 'Shelly', phone_number: '')
pool.users.create(primary_identifier: SecureRandom.uuid, title: 'Mr', last_name: 'Homes', phone_number: '')
pool.users.create(primary_identifier: SecureRandom.uuid, title: 'Mr', last_name: 'Lucas', phone_number: '')
FactoryBot.create(:pool).tap do |pool|
pool.users.find_or_create_by(
primary_identifier: "#{Faker::Job.title}-#{SecureRandom.uuid}",
title: 'Ms',
last_name: 'Shelly',
phone_number: ''
)
pool.users.find_or_create_by(
primary_identifier: "#{Faker::Job.title}-#{SecureRandom.uuid}",
title: 'Mr',
last_name: 'Homes',
phone_number: ''
)
pool.users.find_or_create_by(
primary_identifier: "#{Faker::Job.title}-#{SecureRandom.uuid}",
title: 'Mr',
last_name: 'Lucas',
phone_number: ''
)
end
end
end
Expand Down
4 changes: 2 additions & 2 deletions services/cognito/spec/factories/chown_requests.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

FactoryBot.define do
factory :chown_request do
to_id { 1 }
from_ids { [1] }
to_id { SecureRandom.random_number(1_000_000) }
from_ids { [SecureRandom.random_number(1_000_000)] }
end
end
4 changes: 2 additions & 2 deletions services/cognito/spec/factories/endpoints.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

FactoryBot.define do
factory :endpoint do
url { 'http://localhost:3000/test' }
url { Faker::Internet.url }
target_type { 'Perx::Survey::Campaign' }
target_id { 1 }
target_id { SecureRandom.random_number(1_000_000) }
properties { {} }
end
end
4 changes: 2 additions & 2 deletions services/cognito/spec/factories/identifiers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

FactoryBot.define do
factory :identifier do
name { 'MyString' }
value { 'MyString' }
name { Faker::Job.title }
value { Faker::Job.title }
user
properties { {} }
end
Expand Down
2 changes: 1 addition & 1 deletion services/cognito/spec/factories/metabase_cards.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

FactoryBot.define do
factory :metabase_card do
card_id { rand(1..1000) }
card_id { SecureRandom.random_number(1_000_000) }
identifier { Faker::Internet.username }
end
end
2 changes: 1 addition & 1 deletion services/cognito/spec/factories/pools.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

FactoryBot.define do
factory :pool do
sequence(:name) { |n| "Pool-#{n}-Name" }
name { "#{Faker::Job.title}-#{SecureRandom.uuid}" }
properties { '' }
end
end
3 changes: 0 additions & 3 deletions services/comm/app/operations/message_create.rb
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,7 @@ def invalid_send_at(ctx, **)
end

def setup_message(ctx, params:, **)
# TODO: If the tenant has a provider set, use the tenant's provider
# else default to platform default provider
ctx[:model] = Message.new(params)
ctx[:model].provider_id = Providers::Aws.first.id
ctx[:model].valid?
end

Expand Down
11 changes: 11 additions & 0 deletions services/comm/db/seeds/development/campaigns.seeds.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# frozen_string_literal: true

after 'development:tenants' do
Tenant.all.each do |tenant|
next if tenant.id.eql? 1

tenant.switch do
FactoryBot.create(:campaign)
end
end
end
35 changes: 0 additions & 35 deletions services/comm/db/seeds/development/data.seeds.rb

This file was deleted.

15 changes: 15 additions & 0 deletions services/comm/db/seeds/development/events.seeds.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# frozen_string_literal: true

after 'development:campaigns', 'development:templates', 'development:providers' do
Tenant.all.each do |tenant|
next if tenant.id.eql? 1

tenant.switch do
template = Template.first
campaign = Campaign.first
provider = Provider.first

FactoryBot.create(:event, provider: provider, campaign: campaign, template: template)
end
end
end
14 changes: 14 additions & 0 deletions services/comm/db/seeds/development/providers.seeds.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# frozen_string_literal: true

after 'development:tenants' do
Tenant.all.each do |tenant|
next if tenant.id.eql? 1

tenant.switch do
Providers::Twilio.create(name: "Marketing Team's Twilio", account_sid: ENV['TWILIO_ACCOUNT_SID'],
auth_token: ENV['TWILIO_AUTH_TOKEN'], channels: %w[sms call])
Providers::Aws.create(name: "Tech Team's AWS", access_key_id: ENV['AWS_ACCESS_KEY_ID'],
secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], channels: ['sms'])
end
end
end
11 changes: 11 additions & 0 deletions services/comm/db/seeds/development/templates.seeds.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# frozen_string_literal: true

after 'development:tenants' do
Tenant.all.each do |tenant|
next if tenant.id.eql? 1

tenant.switch do
FactoryBot.create(:template)
end
end
end
5 changes: 2 additions & 3 deletions services/comm/db/seeds/development/tenants.seeds.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# frozen_string_literal: true

Tenant.create(schema_name: 'public')
Tenant.find_or_create_by(schema_name: 'public')

1.upto(7) do |id|
tenant = Tenant.create!(schema_name: Tenant.account_id_to_schema(id.to_s * 9))
tenant.update(platform_twilio_enabled: true) if id == 1
Tenant.find_or_create_by(schema_name: Tenant.account_id_to_schema(id.to_s * 9))
end
11 changes: 11 additions & 0 deletions services/comm/db/seeds/development/whatsapps.seeds.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# frozen_string_literal: true

after 'development:tenants' do
Tenant.all.each do |tenant|
next if tenant.id.eql? 1

tenant.switch do
FactoryBot.create(:whatsapp)
end
end
end
4 changes: 2 additions & 2 deletions services/comm/spec/factories/campaigns.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

FactoryBot.define do
factory :campaign do
owner_type { 'Test' }
owner_id { 1 }
owner_type { Faker::Job.title }
owner_id { SecureRandom.random_number(1_000_000) }
end
end
3 changes: 2 additions & 1 deletion services/comm/spec/factories/events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@

FactoryBot.define do
factory :event do
name { Faker::Lorem.word }
send_at { Time.zone.now + 10.minutes }
channel { 'weblink' }
sequence(:owner_id)
owner_type { 'Perx::Campaign::Entity' }
association :provider, factory: :provider_aws
association :campaign
template
sequence(:target_id)
target_id { SecureRandom.random_number(1_000_000) }
target_type { 'Ros::Cognito::Pool' }

# trait :within_schema do
Expand Down
2 changes: 2 additions & 0 deletions services/comm/spec/factories/templates.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

FactoryBot.define do
factory :template do
name { Faker::Company.name }
content { Faker::ChuckNorris.fact }
status { 'N/a' }
description { Faker::Lorem.paragraph }

trait :within_schema do
transient do
Expand Down
8 changes: 8 additions & 0 deletions services/comm/spec/factories/whatsapps.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# frozen_string_literal: true

FactoryBot.define do
factory :whatsapp do
sms_message_sid { SecureRandom.random_number(1_000_000) }
sms_sid { SecureRandom.random_number(1_000_000) }
end
end
23 changes: 16 additions & 7 deletions services/comm/spec/operations/message_create_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
end
end

context 'when some attributes are not valid' do
context 'when provider is not given' do
let(:op_params) do
{
params: {
Expand All @@ -114,16 +114,25 @@
}
end

xit 'returns unsuccessful operation with error' do
expect(op_result.success?).to eq false
expect(op_result.errors.full_messages).to eq ['Provider must exist']
xcontext 'with AWS provider setup' do
it 'falls back to aws provider as default' do
expect(op_result.success?).to eq true
expect(op_result.model.provider.type).to eq 'Providers::Aws'
end
end

xit 'does not create the message' do
expect { op_result }.to_not(change { Message.count })
xcontext 'without AWS provider setup' do
before do
message_owner.provider.update!(type: 'Providers::Twilio')
end

it 'returns unsuccessful operation with error' do
expect(op_result.success?).to eq false
expect(op_result.errors.full_messages).to eq ['Provider must exist']
end
end

xcontext 'when send_at is not a date time' do
context 'when send_at is not a date time' do
let(:op_params) do
{
params: {
Expand Down
Loading