Compare commits

..

3 Commits

Author SHA1 Message Date
Bilal
9012ec253d send first and last name to HubSpot when new account is created 2020-06-30 11:14:02 +02:00
Senad Uka
dd0ac5b110 Upstream sync 2020-06-30 05:07:43 +02:00
Senad Uka
8951667e61 Upstrream sync 2020-06-26 18:45:11 +02:00
27 changed files with 311 additions and 183 deletions

View File

@@ -4,7 +4,7 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby "2.6.3"
# Bundle edge Rails instead: gem "rails", github: "rails/rails"
gem "rails", "~> 6.0.0"
gem "rails", "~> 6.0.3.1"
# Use postgresql as the database for Active Record
gem "pg", "~> 0.18"
# Use Puma as the app server

View File

@@ -44,71 +44,71 @@ GEM
remote: https://rubygems.org/
specs:
Ascii85 (1.0.3)
actioncable (6.0.0)
actionpack (= 6.0.0)
actioncable (6.0.3.2)
actionpack (= 6.0.3.2)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (6.0.0)
actionpack (= 6.0.0)
activejob (= 6.0.0)
activerecord (= 6.0.0)
activestorage (= 6.0.0)
activesupport (= 6.0.0)
actionmailbox (6.0.3.2)
actionpack (= 6.0.3.2)
activejob (= 6.0.3.2)
activerecord (= 6.0.3.2)
activestorage (= 6.0.3.2)
activesupport (= 6.0.3.2)
mail (>= 2.7.1)
actionmailer (6.0.0)
actionpack (= 6.0.0)
actionview (= 6.0.0)
activejob (= 6.0.0)
actionmailer (6.0.3.2)
actionpack (= 6.0.3.2)
actionview (= 6.0.3.2)
activejob (= 6.0.3.2)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
actionpack (6.0.0)
actionview (= 6.0.0)
activesupport (= 6.0.0)
rack (~> 2.0)
actionpack (6.0.3.2)
actionview (= 6.0.3.2)
activesupport (= 6.0.3.2)
rack (~> 2.0, >= 2.0.8)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actiontext (6.0.0)
actionpack (= 6.0.0)
activerecord (= 6.0.0)
activestorage (= 6.0.0)
activesupport (= 6.0.0)
actiontext (6.0.3.2)
actionpack (= 6.0.3.2)
activerecord (= 6.0.3.2)
activestorage (= 6.0.3.2)
activesupport (= 6.0.3.2)
nokogiri (>= 1.8.5)
actionview (6.0.0)
activesupport (= 6.0.0)
actionview (6.0.3.2)
activesupport (= 6.0.3.2)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
active_storage_base64 (1.0.0)
rails (~> 6.0)
activejob (6.0.0)
activesupport (= 6.0.0)
activejob (6.0.3.2)
activesupport (= 6.0.3.2)
globalid (>= 0.3.6)
activemodel (6.0.0)
activesupport (= 6.0.0)
activemodel (6.0.3.2)
activesupport (= 6.0.3.2)
activemodel-serializers-xml (1.0.2)
activemodel (> 5.x)
activesupport (> 5.x)
builder (~> 3.1)
activerecord (6.0.0)
activemodel (= 6.0.0)
activesupport (= 6.0.0)
activerecord (6.0.3.2)
activemodel (= 6.0.3.2)
activesupport (= 6.0.3.2)
activeresource (5.1.0)
activemodel (>= 5.0, < 7)
activemodel-serializers-xml (~> 1.0)
activesupport (>= 5.0, < 7)
activestorage (6.0.0)
actionpack (= 6.0.0)
activejob (= 6.0.0)
activerecord (= 6.0.0)
activestorage (6.0.3.2)
actionpack (= 6.0.3.2)
activejob (= 6.0.3.2)
activerecord (= 6.0.3.2)
marcel (~> 0.3.1)
activesupport (6.0.0)
activesupport (6.0.3.2)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
zeitwerk (~> 2.1, >= 2.1.8)
zeitwerk (~> 2.2, >= 2.2.2)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
afm (0.2.2)
@@ -181,7 +181,7 @@ GEM
coffee-script-source
execjs
coffee-script-source (1.12.2)
concurrent-ruby (1.1.5)
concurrent-ruby (1.1.6)
connection_pool (2.2.2)
countries (2.1.4)
i18n_data (~> 0.8.0)
@@ -230,7 +230,7 @@ GEM
hubspot-ruby (0.9.0)
activesupport (>= 3.0.0)
httparty (>= 0.10.0)
i18n (1.8.2)
i18n (1.8.3)
concurrent-ruby (~> 1.0)
i18n_data (0.8.0)
i18n_yaml_sorter (0.2.0)
@@ -270,22 +270,22 @@ GEM
ruby_dep (~> 1.2)
loaf (0.8.1)
rails (>= 3.2)
loofah (2.4.0)
loofah (2.6.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
mail (2.7.1)
mini_mime (>= 0.1.1)
marcel (0.3.3)
mimemagic (~> 0.3.2)
method_source (0.9.2)
method_source (1.0.0)
mime-types (3.3)
mime-types-data (~> 3.2015)
mime-types-data (3.2019.0904)
mimemagic (0.3.3)
mimemagic (0.3.5)
mini_magick (4.9.5)
mini_mime (1.0.2)
mini_portile2 (2.4.0)
minitest (5.14.0)
minitest (5.14.1)
monetize (1.9.2)
money (~> 6.12)
money (6.13.4)
@@ -298,8 +298,8 @@ GEM
msgpack (1.3.1)
multi_xml (0.6.0)
multipart-post (2.1.1)
nio4r (2.5.1)
nokogiri (1.10.7)
nio4r (2.5.2)
nokogiri (1.10.9)
mini_portile2 (~> 2.4.0)
oath (1.1.0)
bcrypt
@@ -337,20 +337,20 @@ GEM
rack
rack-test (1.1.0)
rack (>= 1.0, < 3)
rails (6.0.0)
actioncable (= 6.0.0)
actionmailbox (= 6.0.0)
actionmailer (= 6.0.0)
actionpack (= 6.0.0)
actiontext (= 6.0.0)
actionview (= 6.0.0)
activejob (= 6.0.0)
activemodel (= 6.0.0)
activerecord (= 6.0.0)
activestorage (= 6.0.0)
activesupport (= 6.0.0)
rails (6.0.3.2)
actioncable (= 6.0.3.2)
actionmailbox (= 6.0.3.2)
actionmailer (= 6.0.3.2)
actionpack (= 6.0.3.2)
actiontext (= 6.0.3.2)
actionview (= 6.0.3.2)
activejob (= 6.0.3.2)
activemodel (= 6.0.3.2)
activerecord (= 6.0.3.2)
activestorage (= 6.0.3.2)
activesupport (= 6.0.3.2)
bundler (>= 1.3.0)
railties (= 6.0.0)
railties (= 6.0.3.2)
sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.4)
actionpack (>= 5.0.1.x)
@@ -363,9 +363,9 @@ GEM
nokogiri (>= 1.6)
rails-html-sanitizer (1.3.0)
loofah (~> 2.3)
railties (6.0.0)
actionpack (= 6.0.0)
activesupport (= 6.0.0)
railties (6.0.3.2)
actionpack (= 6.0.3.2)
activesupport (= 6.0.3.2)
method_source
rake (>= 0.8.7)
thor (>= 0.20.3, < 2.0)
@@ -469,7 +469,7 @@ GEM
turbolinks-source (5.2.0)
typhoeus (1.3.1)
ethon (>= 0.9.0)
tzinfo (1.2.6)
tzinfo (1.2.7)
thread_safe (~> 0.1)
uglifier (4.1.20)
execjs (>= 0.3.0, < 3)
@@ -494,9 +494,9 @@ GEM
activesupport (>= 4.2)
rack-proxy (>= 0.6.1)
railties (>= 4.2)
websocket-driver (0.7.1)
websocket-driver (0.7.2)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.4)
websocket-extensions (0.1.5)
will_paginate (3.2.1)
will_paginate-bootstrap4 (0.2.2)
will_paginate (~> 3.0, >= 3.0.0)
@@ -504,7 +504,7 @@ GEM
wkhtmltopdf-heroku (2.12.5.0)
xpath (3.2.0)
nokogiri (~> 1.8)
zeitwerk (2.2.2)
zeitwerk (2.3.1)
PLATFORMS
ruby
@@ -561,7 +561,7 @@ DEPENDENCIES
rack!
rack-contrib (~> 2.0.1)
rack-cors
rails (~> 6.0.0)
rails (~> 6.0.3.1)
rails-controller-testing (~> 1.0.4)
rails-data-migrations (~> 1.2.0)
redcarpet (~> 3.4.0)

View File

@@ -1,24 +0,0 @@
$(document).on("click", "[data-behavior=play_recording]", function() {
if ($(this).hasClass('active')){
return false;
}
var playback_url = $(this).attr("data-playback-url")
$("#broadcast_video").empty();
new Clappr.Player({
parentId: '#broadcast_video',
source: playback_url,
width: '100%',
height: '100%',
autoPlay: true
});
$(".dropdown-menu").children().removeClass('active');
$(".dropdown-menu").children().children('i').remove();
$(this).siblings().removeClass('active');
$(this).siblings().children("i").remove();
$(this).addClass('active');
$(this).prepend('<i class="fa fa-check">&nbsp;</i>');
});

View File

@@ -0,0 +1,26 @@
$(document).on("click", "[data-behavior=play_recording]", function() {
if ($(this).hasClass('active')){
return false;
}
console.warn('Play prev : ', playback_url);
var playback_url = $(this).attr("data-playback-url")
$("#broadcast_video").empty();
new Clappr.Player({
<%= "baseUrl: 'http://cdn.clappr.io/latest'," if Rails.env.test? %>
parentId: '#broadcast_video',
source: playback_url,
width: '100%',
height: '100%',
autoPlay: true
});
$(".dropdown-menu").children().removeClass('active');
$(".dropdown-menu").children().children('i').remove();
$(this).siblings().removeClass('active');
$(this).siblings().children("i").remove();
$(this).addClass('active');
$(this).prepend('<i class="fa fa-check">&nbsp;</i>');
});

View File

@@ -17,7 +17,7 @@ class AccountsController < ApplicationController
if sign_in(user)
TrackAnalyticsJob.perform_later(user, user.primary_account, :track_guest_sign_up, user_agent: request.user_agent, user_ip: request.remote_ip)
SubmitHubspotFormJob.perform_later(user.email, account.name, i_m_interested_in: user.interested_product_name)
SubmitHubspotFormJob.perform_later(user.first_name, user.last_name, user.email, account.name, i_m_interested_in: user.interested_product_name)
redirect_to signed_in_root_path
else
redirect_to new_session_path, alert: t(".notice")

View File

@@ -1,12 +1,14 @@
class SubmitHubspotFormJob < ApplicationJob
queue_as :default
def perform(email, company_name, additional_params = {})
def perform(first_name, last_name, email, company_name, additional_params = {})
hubspot_form_guid = ENV["HUBSPOT_FORM_GUID"]
return unless hubspot_form_guid.present?
submission_params = {
email: email,
first_name: first_name,
last_name: last_name,
email: email,
company: company_name
}.merge(additional_params)

View File

@@ -12,7 +12,7 @@ class AcquiredMediaReleasePolicy < ApplicationPolicy
end
def destroy?
true
user.manager? || user.account_manager?
end
def tag_multiple?

View File

@@ -16,7 +16,7 @@ class AppearanceReleasePolicy < ReleasePolicy
end
def destroy?
true
user.manager? || user.account_manager?
end
def tag_multiple?

View File

@@ -16,7 +16,7 @@ class LocationReleasePolicy < ReleasePolicy
end
def destroy?
true
user.manager? || user.account_manager?
end
def edit_photos?

View File

@@ -16,7 +16,7 @@ class MaterialReleasePolicy < ReleasePolicy
end
def destroy?
true
user.manager? || user.account_manager?
end
def edit_photos?

View File

@@ -12,7 +12,7 @@ class MedicalReleasePolicy < ReleasePolicy
end
def destroy?
true
user.manager? || user.account_manager?
end
def edit_photos?

View File

@@ -12,7 +12,7 @@ class MiscReleasePolicy < ReleasePolicy
end
def destroy?
true
user.manager? || user.account_manager?
end
def edit_photos?

View File

@@ -12,7 +12,7 @@ class MusicReleasePolicy < ReleasePolicy
end
def destroy?
true
user.manager? || user.account_manager?
end
def tag_multiple?

View File

@@ -12,7 +12,7 @@ class TalentReleasePolicy < ReleasePolicy
end
def destroy?
true
user.manager? || user.account_manager?
end
def edit_photos?

View File

@@ -33,7 +33,7 @@
<%= link_to "Switch View", "#", class: "btn btn-light border dropdown-toggle", role: "button", id: "dropdownMenuLink", data: { toggle: "dropdown" }, aria: { haspopup: "true", expanded: "false" } %>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<h5 class="dropdown-header">Live Streams</h5>
<span class="dropdown-item active"><%= fa_icon("check", text: @broadcast.name.titleize) %></span>
<%= link_to fa_icon("check", text: @broadcast.name.titleize), "#", class: "dropdown-item active" %>
<% @multi_view_broadcasts.each do |broadcast| %>
<% if broadcast.id != @broadcast.id %>
<%= link_to broadcast.name.titleize, broadcast.url, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
@@ -159,4 +159,4 @@
</div>
</div>
</div>
<div>
</div>

View File

@@ -57,6 +57,8 @@ RSpec.describe AccountsController, type: :controller do
expect {
post :create, params: params
}.to have_enqueued_job(SubmitHubspotFormJob).with(
"John",
"Doe",
"test_user+1@test.com",
"Test Dev account",
i_m_interested_in: "DirectME"

View File

@@ -1,97 +1,138 @@
require "rails_helper"
# frozen_string_literal: true
feature "User managing broadcasts" do
require 'rails_helper'
feature 'User managing broadcasts' do
let(:current_user) { create(:user, :manager) }
let(:project) { create(:project, members: current_user, account: current_user.primary_account) }
context "managing broadcasts" do
context 'managing broadcasts' do
before do
sign_in current_user
allow(MuxLiveStream).to receive(:new).and_return(double(id: "id", key: "key", playback_id: "playback_id"))
allow(MuxLiveStream).to receive(:new).and_return(double(id: 'id', key: 'key', playback_id: 'playback_id'))
end
scenario "creating and deleting a broadcast", js: true do
scenario 'creating and deleting a broadcast', js: true do
visit new_project_broadcast_path(project)
by "filling out the form" do
fill_in broadcast_name_field, with: "My Broadcast"
by 'filling out the form' do
fill_in broadcast_name_field, with: 'My Broadcast'
end
click_button "Create Live Stream"
expect(page).to have_content("A live stream has been created")
click_on "Manage"
expect(page).to have_link("Copy Stream URL", exact: true)
expect(page).to have_link("Copy Stream Key", exact: true)
expect(page).to have_link("View", exact: true)
expect(page).to have_link("Delete", exact: true)
click_button 'Create Live Stream'
expect(page).to have_content('A live stream has been created')
click_on 'Manage'
expect(page).to have_link('Copy Stream URL', exact: true)
expect(page).to have_link('Copy Stream Key', exact: true)
expect(page).to have_link('View', exact: true)
expect(page).to have_link('Delete', exact: true)
it_also "Deletes the broadcast" do
it_also 'Deletes the broadcast' do
allow_any_instance_of(Broadcast).to receive(:destroy_mux_live_stream).and_return(true)
accept_alert do
click_link "Delete"
click_link 'Delete'
end
expect(page).to have_content("A live stream has been deleted")
expect(page).not_to have_content("My Broadcast")
expect(page).to have_content('A live stream has been deleted')
expect(page).not_to have_content('My Broadcast')
end
end
scenario "visit show page of broadcast", js: true do
scenario 'visit show page of broadcast', js: true do
broadcast = create(:broadcast, :with_stream, :with_files, project: project)
recording = create(:broadcast_recording, broadcast: broadcast)
visit project_broadcast_path(project, broadcast)
expect(page).to have_content("Live stream is waiting to begin.")
expect(page).to have_content("Copy URL")
expect(page).to have_content('Live stream is waiting to begin.')
expect(page).to have_content('Copy URL')
within "#files" do
expect(page).to have_content("contract.pdf")
within '#files' do
expect(page).to have_content('contract.pdf')
end
click_on "Previous Sessions"
click_on 'Previous Sessions'
expect(page).to have_content(recording.download_file_name)
end
scenario "form will not submit if user clicks Add files without selected files", js: true do
scenario 'user can go back and forth between live session and previous sessions', js: true do
broadcast = create(:broadcast, :with_stream, :with_files, project: project)
recording = create(:broadcast_recording, broadcast: broadcast)
visit project_broadcast_path(project, broadcast)
expect(page).to have_content broadcast.name.titleize, count: 1
expect(page).to have_content recording.download_file_name, count: 0
click_on switch_view_dropdown
expect(page).to have_content broadcast.name.titleize, count: 2
expect(page).to have_content recording.download_file_name, count: 1
live_stream_nav_item = page.find('.dropdown-item', text: broadcast.name.titleize)
recording_nav_item = page.find('.dropdown-item', text: recording.download_file_name)
expect(live_stream_nav_item[:class].include?('active')).to eq true
expect(recording_nav_item[:class].include?('active')).to eq false
click_on recording.download_file_name
expect(page).to have_content broadcast.name.titleize, count: 1
expect(page).to have_content recording.download_file_name, count: 0
expect(live_stream_nav_item[:class].include?('active')).to eq false
expect(recording_nav_item[:class].include?('active')).to eq true
click_on switch_view_dropdown
click_on broadcast.name.titleize
expect(page).to have_content broadcast.name.titleize, count: 1
expect(page).to have_content recording.download_file_name, count: 0
# Page is reloaded, we need to get dropdown items again
live_stream_nav_item = page.find('.dropdown-item', text: broadcast.name.titleize, visible: :all)
recording_nav_item = page.find('.dropdown-item', text: recording.download_file_name, visible: :all)
expect(live_stream_nav_item[:class].include?('active')).to eq true
expect(recording_nav_item[:class].include?('active')).to eq false
end
scenario 'form will not submit if user clicks Add files without selected files', js: true do
broadcast = create(:broadcast, :with_stream, :with_files, project: project)
visit project_broadcast_path(project, broadcast)
expect(page).to have_content("Live stream is waiting to begin.")
expect(page).to have_content('Live stream is waiting to begin.')
expect(page).to have_content add_file_button
click_on add_file_button
end
scenario "visit multi-view broadcast page", js: true do
broadcast_one = create(:broadcast, :with_stream, :with_files, name: "Broadcast 1", project: project)
broadcast_two = create(:broadcast, :with_stream, :with_files, name: "Broadcast 2", project: project)
scenario 'visit multi-view broadcast page', js: true do
broadcast_one = create(:broadcast, :with_stream, :with_files, name: 'Broadcast 1', project: project)
broadcast_two = create(:broadcast, :with_stream, :with_files, name: 'Broadcast 2', project: project)
visit project_broadcasts_path(project)
click_checkboxes
new_window = window_opened_by { click_link "Multi-View" }
new_window = window_opened_by { click_link 'Multi-View' }
within_window new_window do
expect(page).to have_content("Switch View")
expect(page).to have_content switch_view_dropdown
click_on "Switch View"
expect(page).to have_link("Broadcast 1")
expect(page).to have_link("Broadcast 2")
click_on switch_view_dropdown
expect(page).to have_link('Broadcast 1')
expect(page).to have_link('Broadcast 2')
within "#files" do
click_on "Broadcast 1"
expect(page).to have_content("contract.pdf")
within '#files' do
click_on 'Broadcast 1'
expect(page).to have_content('contract.pdf')
click_on "Broadcast 2"
expect(page).to have_content("contract.pdf")
click_on 'Broadcast 2'
expect(page).to have_content('contract.pdf')
end
end
end
end
end
private
def add_file_button
@@ -99,11 +140,15 @@ feature "User managing broadcasts" do
end
def broadcast_name_field
"broadcast[name]"
'broadcast[name]'
end
def click_checkboxes
all('input[type="checkbox"]')[0].click
all('input[type="checkbox"]')[1].click
end
def switch_view_dropdown
'Switch View'
end
end

View File

@@ -11,10 +11,12 @@ RSpec.describe SubmitHubspotFormJob, type: :job do
allow(Hubspot::Form).to receive(:new).and_return(form)
allow(form).to receive(:submit).and_return(true)
SubmitHubspotFormJob.perform_now("email@test.com", "My Account")
SubmitHubspotFormJob.perform_now("John", "Doe", "email@test.com", "My Account")
expect(Hubspot::Form).to have_received(:new).with("guid" => "hubspot_form_guid")
expect(form).to have_received(:submit).with(
first_name: "John",
last_name: "Doe",
email: "email@test.com",
company: "My Account"
)
@@ -25,9 +27,11 @@ RSpec.describe SubmitHubspotFormJob, type: :job do
allow(Hubspot::Form).to receive(:new).and_return(form)
allow(form).to receive(:submit).and_return(true)
SubmitHubspotFormJob.perform_now("email@test.com", "My Account", additional_param_one: "Foo", additional_param_two: "Bar")
SubmitHubspotFormJob.perform_now("John", "Doe", "email@test.com", "My Account", additional_param_one: "Foo", additional_param_two: "Bar")
expect(form).to have_received(:submit).with(
first_name: "John",
last_name: "Doe",
email: "email@test.com",
company: "My Account",
additional_param_one: "Foo",
@@ -42,7 +46,7 @@ RSpec.describe SubmitHubspotFormJob, type: :job do
allow(Hubspot::Form).to receive(:new).and_return(form)
allow(form).to receive(:submit)
SubmitHubspotFormJob.perform_now("email@test.com", "My Account")
SubmitHubspotFormJob.perform_now("John", "Doe", "email@test.com", "My Account")
expect(form).not_to have_received(:submit)
end

View File

@@ -133,7 +133,8 @@ RSpec.describe Account do
ZoomMeeting,
MedicalRelease,
MiscRelease,
MatchingRequest
MatchingRequest,
ActionMailbox::InboundEmail # This is Rails model, we are not using it and it is NOT added to the Account#storage_total calculation
]
Rails.application.eager_load!
ActiveRecord::Base.descendants.each do |model|

View File

@@ -1,7 +1,8 @@
require "rails_helper"
describe AcquiredMediaReleasePolicy do
let(:user_context) { build(:user_context) }
let(:user) { create(:user, :manager) }
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
subject { described_class }
@@ -24,6 +25,14 @@ describe AcquiredMediaReleasePolicy do
end
permissions :destroy? do
it { is_expected.to permit(:destroy) }
it { is_expected.to permit(user_context, :destroy) }
end
context "for an associate" do
let(:user) { create(:user, :associate) }
permissions :destroy? do
it { is_expected.not_to permit(user_context, :destroy) }
end
end
end

View File

@@ -1,7 +1,8 @@
require "rails_helper"
describe AppearanceReleasePolicy do
let(:user_context) { build(:user_context) }
let(:user) { create(:user, :manager) }
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
subject { described_class }
@@ -24,6 +25,14 @@ describe AppearanceReleasePolicy do
end
permissions :destroy? do
it { is_expected.to permit(:destroy) }
it { is_expected.to permit(user_context, :destroy) }
end
context "for an associate" do
let(:user) { create(:user, :associate) }
permissions :destroy? do
it { is_expected.not_to permit(user_context, :destroy) }
end
end
end

View File

@@ -1,7 +1,8 @@
require "rails_helper"
describe LocationReleasePolicy do
let(:user_context) { build(:user_context) }
let(:user) { create(:user, :manager) }
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
subject { described_class }
@@ -23,10 +24,6 @@ describe LocationReleasePolicy do
end
end
permissions :destroy? do
it { is_expected.to permit(:destroy) }
end
permissions :edit_photos? do
it { is_expected.to permit(:edit_photos) }
end
@@ -34,4 +31,16 @@ describe LocationReleasePolicy do
permissions :update_photos? do
it { is_expected.to permit(:update_photos) }
end
permissions :destroy? do
it { is_expected.to permit(user_context, :destroy) }
end
context "for an associate" do
let(:user) { create(:user, :associate) }
permissions :destroy? do
it { is_expected.not_to permit(user_context, :destroy) }
end
end
end

View File

@@ -1,7 +1,8 @@
require "rails_helper"
describe MaterialReleasePolicy do
let(:user_context) { build(:user_context) }
let(:user) { create(:user, :manager) }
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
subject { described_class }
@@ -23,10 +24,6 @@ describe MaterialReleasePolicy do
end
end
permissions :destroy? do
it { is_expected.to permit(:destroy) }
end
permissions :edit_photos? do
it { is_expected.to permit(:edit_photos) }
end
@@ -34,4 +31,16 @@ describe MaterialReleasePolicy do
permissions :update_photos? do
it { is_expected.to permit(:update_photos) }
end
permissions :destroy? do
it { is_expected.to permit(user_context, :destroy) }
end
context "for an associate" do
let(:user) { create(:user, :associate) }
permissions :destroy? do
it { is_expected.not_to permit(user_context, :destroy) }
end
end
end

View File

@@ -1,7 +1,8 @@
require "rails_helper"
describe MedicalReleasePolicy do
let(:user_context) { build(:user_context) }
let(:user) { create(:user, :manager) }
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
subject { described_class }
@@ -23,10 +24,6 @@ describe MedicalReleasePolicy do
end
end
permissions :destroy? do
it { is_expected.to permit(:destroy) }
end
permissions :edit_photos? do
it { is_expected.to permit(:edit_photos) }
end
@@ -34,4 +31,16 @@ describe MedicalReleasePolicy do
permissions :update_photos? do
it { is_expected.to permit(:update_photos) }
end
permissions :destroy? do
it { is_expected.to permit(user_context, :destroy) }
end
context "for an associate" do
let(:user) { create(:user, :associate) }
permissions :destroy? do
it { is_expected.not_to permit(user_context, :destroy) }
end
end
end

View File

@@ -1,7 +1,8 @@
require "rails_helper"
describe MiscReleasePolicy do
let(:user_context) { build(:user_context) }
let(:user) { create(:user, :manager) }
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
subject { described_class }
@@ -19,10 +20,6 @@ describe MiscReleasePolicy do
end
end
permissions :destroy? do
it { is_expected.to permit(:destroy) }
end
permissions :edit_photos? do
it { is_expected.to permit(:edit_photos) }
end
@@ -30,4 +27,16 @@ describe MiscReleasePolicy do
permissions :update_photos? do
it { is_expected.to permit(:update_photos) }
end
permissions :destroy? do
it { is_expected.to permit(user_context, :destroy) }
end
context "for an associate" do
let(:user) { create(:user, :associate) }
permissions :destroy? do
it { is_expected.not_to permit(user_context, :destroy) }
end
end
end

View File

@@ -1,7 +1,8 @@
require "rails_helper"
RSpec.describe MusicReleasePolicy do
let(:user_context) { build(:user_context) }
let(:user) { create(:user, :manager) }
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
subject { described_class }
@@ -18,6 +19,14 @@ RSpec.describe MusicReleasePolicy do
end
permissions :destroy? do
it { is_expected.to permit(:destroy) }
it { is_expected.to permit(user_context, :destroy) }
end
context "for an associate" do
let(:user) { create(:user, :associate) }
permissions :destroy? do
it { is_expected.not_to permit(user_context, :destroy) }
end
end
end

View File

@@ -1,7 +1,8 @@
require "rails_helper"
describe TalentReleasePolicy do
let(:user_context) { build(:user_context) }
let(:user) { create(:user, :manager) }
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
subject { described_class }
@@ -23,10 +24,6 @@ describe TalentReleasePolicy do
end
end
permissions :destroy? do
it { is_expected.to permit(:destroy) }
end
permissions :edit_photos? do
it { is_expected.to permit(:edit_photos) }
end
@@ -34,4 +31,16 @@ describe TalentReleasePolicy do
permissions :update_photos? do
it { is_expected.to permit(:update_photos) }
end
permissions :destroy? do
it { is_expected.to permit(user_context, :destroy) }
end
context "for an associate" do
let(:user) { create(:user, :associate) }
permissions :destroy? do
it { is_expected.not_to permit(user_context, :destroy) }
end
end
end