Skip to content
代码片段 群组 项目
未验证 提交 d6046ada 编辑于 作者: Nicolas Dular's avatar Nicolas Dular 提交者: GitLab
浏览文件

Merge branch '457265-fix-widget-props' into 'master'

Only include the duo pro widget data if ultimate trial is absent

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153207



Merged-by: default avatarNicolas Dular <ndular@gitlab.com>
Approved-by: default avatarSerhii Yarynovskyi <syarynovskyi@gitlab.com>
Approved-by: default avatarNicolas Dular <ndular@gitlab.com>
Reviewed-by: default avatarNicolas Dular <ndular@gitlab.com>
Co-authored-by: default avatarDoug Stull <dstull@gitlab.com>
No related branches found
No related tags found
加载中
...@@ -39,9 +39,12 @@ def super_sidebar_context(user, group:, project:, panel:, panel_type:) ...@@ -39,9 +39,12 @@ def super_sidebar_context(user, group:, project:, panel:, panel_type:)
context.merge!( context.merge!(
trial_data(root_namespace), trial_data(root_namespace),
duo_pro_trial_data(root_namespace),
show_tanuki_bot: ::Gitlab::Llm::TanukiBot.enabled_for?(user: current_user, container: nil) show_tanuki_bot: ::Gitlab::Llm::TanukiBot.enabled_for?(user: current_user, container: nil)
) )
# do not add overriding data if there is already an ultimate trial widget to show
context.merge!(duo_pro_trial_data(root_namespace)) unless context.key?(:trial_status_widget_data_attrs)
context[:trial] = { context[:trial] = {
has_start_trial: trials_allowed?(user), has_start_trial: trials_allowed?(user),
url: new_trial_path(glm_source: 'gitlab.com', glm_content: 'top-right-dropdown') url: new_trial_path(glm_source: 'gitlab.com', glm_content: 'top-right-dropdown')
......
...@@ -8,13 +8,21 @@ ...@@ -8,13 +8,21 @@
let_it_be(:user) { create(:user, :with_namespace, organization: 'YMCA') } let_it_be(:user) { create(:user, :with_namespace, organization: 'YMCA') }
let_it_be(:group) do let_it_be(:group) do
create( create(
:group_with_plan, plan: :ultimate_trial_plan, trial_starts_on: Date.current, trial_ends_on: 30.days.from_now :group_with_plan,
) do |record| plan: :ultimate_trial_plan,
record.add_owner(user) trial_starts_on: Date.current,
end trial_ends_on: 30.days.from_now,
owners: user
)
end
before_all do
# Setup a duo pro trial here too so that we ensure ultimate trial widget is unaffected
create(:gitlab_subscription_add_on_purchase, :gitlab_duo_pro, :trial, namespace: group)
end end
before do before do
stub_saas_features(subscriptions_trials: true)
stub_application_setting(check_namespace_plan: true) stub_application_setting(check_namespace_plan: true)
allow_next_instance_of(GitlabSubscriptions::FetchSubscriptionPlansService, plan: :free) do |instance| allow_next_instance_of(GitlabSubscriptions::FetchSubscriptionPlansService, plan: :free) do |instance|
allow(instance).to receive(:execute).and_return([{ 'code' => 'ultimate', 'id' => 'ultimate-plan-id' }]) allow(instance).to receive(:execute).and_return([{ 'code' => 'ultimate', 'id' => 'ultimate-plan-id' }])
......
...@@ -134,6 +134,19 @@ ...@@ -134,6 +134,19 @@
it { is_expected.to include(:duo_pro_trial_status_widget_data_attrs) } it { is_expected.to include(:duo_pro_trial_status_widget_data_attrs) }
it { is_expected.to include(:duo_pro_trial_status_popover_data_attrs) } it { is_expected.to include(:duo_pro_trial_status_popover_data_attrs) }
context 'when a namespace is also qualified for a trial status widget' do
before do
allow(helper).to receive(:can?).with(user, :admin_namespace, namespace).and_return(true)
stub_ee_application_setting(should_check_namespace_plan: true)
allow(helper).to receive(:show_trial_status_widget?).and_return(true)
end
it { is_expected.to include(:trial_status_widget_data_attrs) }
it { is_expected.to include(:trial_status_popover_data_attrs) }
it { is_expected.not_to include(:duo_pro_trial_status_widget_data_attrs) }
it { is_expected.not_to include(:duo_pro_trial_status_popover_data_attrs) }
end
end end
end end
end end
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册