90 lines
2.4 KiB
Ruby
90 lines
2.4 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'test_helper'
|
||
|
|
||
|
module Api
|
||
|
module V1
|
||
|
class ContactControllerTest < ActionDispatch::IntegrationTest
|
||
|
setup do
|
||
|
@rol = create :rol
|
||
|
@site = @rol.site
|
||
|
@usuarie = @rol.usuarie
|
||
|
end
|
||
|
|
||
|
teardown do
|
||
|
@site&.destroy
|
||
|
end
|
||
|
|
||
|
test 'el sitio tiene que existir' do
|
||
|
@site.destroy
|
||
|
|
||
|
post v1_site_contact_url(@site),
|
||
|
params: {
|
||
|
name: SecureRandom.hex,
|
||
|
pronouns: SecureRandom.hex,
|
||
|
contact: SecureRandom.hex,
|
||
|
from: "#{SecureRandom.hex}@sutty.nl",
|
||
|
body: SecureRandom.hex,
|
||
|
gdpr: true
|
||
|
}
|
||
|
|
||
|
assert_response :unprocessable_entity, response.status
|
||
|
assert_equal 'site_exists', response.body
|
||
|
end
|
||
|
|
||
|
test 'hay que enviar desde el sitio principal' do
|
||
|
post v1_site_contact_url(@site),
|
||
|
params: {
|
||
|
name: SecureRandom.hex,
|
||
|
pronouns: SecureRandom.hex,
|
||
|
contact: SecureRandom.hex,
|
||
|
from: "#{SecureRandom.hex}@sutty.nl",
|
||
|
body: SecureRandom.hex,
|
||
|
gdpr: true
|
||
|
}
|
||
|
|
||
|
assert_response :unprocessable_entity, response.status
|
||
|
assert_equal 'site_is_origin', response.body
|
||
|
end
|
||
|
|
||
|
test 'hay que dar consentimiento' do
|
||
|
post v1_site_contact_url(@site),
|
||
|
headers: {
|
||
|
Origin: @site.url
|
||
|
},
|
||
|
params: {
|
||
|
name: SecureRandom.hex,
|
||
|
pronouns: SecureRandom.hex,
|
||
|
contact: SecureRandom.hex,
|
||
|
from: "#{SecureRandom.hex}@sutty.nl",
|
||
|
body: SecureRandom.hex
|
||
|
}
|
||
|
|
||
|
assert_response :unprocessable_entity, response.status
|
||
|
assert_equal 'gave_consent', response.body
|
||
|
end
|
||
|
|
||
|
test 'enviar un mensaje genera correos' do
|
||
|
10.times do
|
||
|
create :rol, site: @site
|
||
|
end
|
||
|
|
||
|
post v1_site_contact_url(@site),
|
||
|
headers: {
|
||
|
Origin: @site.url
|
||
|
},
|
||
|
params: {
|
||
|
name: SecureRandom.hex,
|
||
|
pronouns: SecureRandom.hex,
|
||
|
contact: SecureRandom.hex,
|
||
|
from: "#{SecureRandom.hex}@sutty.nl",
|
||
|
body: SecureRandom.hex,
|
||
|
gdpr: true
|
||
|
}
|
||
|
|
||
|
assert_equal 2, ActionMailer::Base.deliveries.size
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|