Skip to content

Updates GraphQL cache with latest addOnPurchase

What does this MR do and why?

Updates GraphQL cache with latest addOnPurchase details when assigning and un-assigning code suggestions add-on.

Also fixes an alignment issue with tooltip for unavailable add-on.

Related to #420010

Screenshots or screen recordings

Scneario Screenshot
Updating add-on assignment Screen_Recording_2023-08-07_at_12.34.09_PM
Tooltip for unavailable addon Screenshot_2023-08-07_at_12.33.00_PM

How to set up and validate locally

  1. Customers Dot needs to be setup in order to view the billing page for a group

  2. Start GDK in SaaS mode GITLAB_SIMULATE_SAAS=1 gdk start

  3. Create a Group

  4. Enable enable_hamilton_in_usage_quotas_ui FF (globally, or for your group)

  5. Buy a Subscription for your group from Settings > Billing

  6. Visit /groups/<your-namespace-name>/-/usage_quotas#seats-quota-tab

  7. Purchase add-on for namespace

    # Get the desired namespace
    namespace = Namespace.last
    # Create an add-on
    add_on = GitlabSubscriptions::AddOn.find_or_create_by!(name: "code_suggestions") {|e| e.description = "Test"}
    # Purchase add-ons for the namespace
    add_on_purchase = GitlabSubscriptions::AddOnPurchase.create!(
      add_on: add_on, namespace: namespace, expires_on: 1.month.from_now, quantity: 2, purchase_xid: 'A-S0001'
    )
  8. Add this snippet here to enable add-on assignment. This enables the add-on assignment for the first 2 users in the list (as per assignable value).

    • Note: Make sure there are at least 3 users in the group if using the below snippet to update the first 3 members data.
     state.members[0].add_ons = { assigned: [], assignable: [{ name: 'CODE_SUGGESTIONS' }] };
     state.members[1].add_ons = { assigned: [], assignable: [{ name: 'CODE_SUGGESTIONS' }] };
     state.members[2].add_ons = { assigned: [], assignable: [] };

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Vamsi Vempati

Merge request reports