@@ -111,28 +111,44 @@ module Proposals
111111 }
112112 end
113113
114- before do
115- component . update! ( settings : { add_integration : true , integration_url : "http://example.org" , preferred_locale : "en" } )
116- allow ( GetDataFromApi ) . to receive ( :data ) . and_return ( json )
114+ context "and there is one url in integration url" do
115+ before do
116+ component . update! ( settings : { add_integration : true , integration_url : "http://example.org" , preferred_locale : "en" } )
117+ allow ( GetDataFromApi ) . to receive ( :data ) . and_return ( json )
118+ end
119+
120+ it "sorts proposals by search defaults and define external_proposals and other variables" do
121+ get :index
122+ expect ( response ) . to have_http_status ( :ok )
123+ expect ( subject ) . to render_template ( :index )
124+ expect ( assigns ( :proposals ) . order_values ) . to eq [ Decidim ::Proposals ::Proposal . arel_table [ Decidim ::Proposals ::Proposal . primary_key ] * Arel . sql ( "RANDOM()" ) ]
125+ expect ( assigns ( :proposals ) . order_values . map ( &:to_sql ) ) . to eq [ "\" decidim_proposals_proposals\" .\" id\" * RANDOM()" ]
126+ expect ( assigns ( :authors ) . count ) . to eq 2
127+ expect ( assigns ( :authors ) . first [ :reference ] ) . to eq "JD-MEET-2025-09-6"
128+ expect ( assigns ( :authors ) . last [ :reference ] ) . to eq "JD-MEET-2025-09-23"
129+ expect ( assigns ( :total_count ) ) . to eq 4
130+ expect ( assigns ( :current_page ) ) . to eq 1
131+ expect ( assigns ( :total_pages ) ) . to eq 1
132+ expect ( assigns ( :proposals ) . count ) . to eq 2
133+ expect ( assigns ( :external_proposals ) . count ) . to eq 2
134+ expect ( assigns ( :external_proposals ) . first [ :reference ] ) . to eq "JD-PROP-2025-09-1"
135+ expect ( assigns ( :external_proposals ) . last [ :reference ] ) . to eq "JD-PROP-2025-09-20"
136+ end
117137 end
118138
119- it "sorts proposals by search defaults and define external_proposals and other variables" do
120- get :index
121- expect ( response ) . to have_http_status ( :ok )
122- expect ( subject ) . to render_template ( :index )
123- expect ( assigns ( :proposals ) . order_values ) . to eq [ Decidim ::Proposals ::Proposal . arel_table [ Decidim ::Proposals ::Proposal . primary_key ] * Arel . sql ( "RANDOM()" ) ]
124- expect ( assigns ( :proposals ) . order_values . map ( &:to_sql ) ) . to eq [ "\" decidim_proposals_proposals\" .\" id\" * RANDOM()" ]
125- expect ( assigns ( :platform ) ) . to eq "example.org"
126- expect ( assigns ( :authors ) . count ) . to eq 2
127- expect ( assigns ( :authors ) . first [ :reference ] ) . to eq "JD-MEET-2025-09-6"
128- expect ( assigns ( :authors ) . last [ :reference ] ) . to eq "JD-MEET-2025-09-23"
129- expect ( assigns ( :total_count ) ) . to eq 4
130- expect ( assigns ( :current_page ) ) . to eq 1
131- expect ( assigns ( :total_pages ) ) . to eq 1
132- expect ( assigns ( :proposals ) . count ) . to eq 2
133- expect ( assigns ( :external_proposals ) . count ) . to eq 2
134- expect ( assigns ( :external_proposals ) . first [ :reference ] ) . to eq "JD-PROP-2025-09-1"
135- expect ( assigns ( :external_proposals ) . last [ :reference ] ) . to eq "JD-PROP-2025-09-20"
139+ context "and there are 2 urls in integration_url" do
140+ before do
141+ component . update! ( settings : { add_integration : true , integration_url : "http://example.org, http://example.org," , preferred_locale : "en" } )
142+ allow ( GetDataFromApi ) . to receive ( :data ) . and_return ( json )
143+ end
144+
145+ it "returns 4 external proposals and 4 authors" do
146+ get :index
147+ expect ( response ) . to have_http_status ( :ok )
148+ expect ( subject ) . to render_template ( :index )
149+ expect ( assigns ( :external_proposals ) . count ) . to eq 4
150+ expect ( assigns ( :authors ) . count ) . to eq 4
151+ end
136152 end
137153 end
138154
@@ -264,7 +280,7 @@ module Proposals
264280 end
265281
266282 it "displays external_proposal view and sets variables" do
267- get :external_proposal , params : { reference : "JD-PROP-2025-09-1" , param : :reference }
283+ get :external_proposal , params : { reference : "JD-PROP-2025-09-1" , param : :reference , url : "http://example.org" }
268284 expect ( response ) . to have_http_status ( :ok )
269285 expect ( subject ) . to render_template ( :external_proposal )
270286 expect ( assigns ( :external_proposal ) ) . to eq json_contrib
0 commit comments