From 976354dbda76ed6fef8cc2f60cfdc72da0e003da Mon Sep 17 00:00:00 2001 From: Prakhar Pratyush Date: Thu, 11 Jan 2024 16:16:37 +0530 Subject: [PATCH] stripe: Fix the invoice item description for flat discounts. Earlier, in process_initial_upgrade, the flat_discount value wasn't converted into dollars when specified in the invoice description, resulting in showing the incorrect value of $2000 as a discount. This commit converts the value in cents to dollars and adds tests to verify the invoice generated. --- corporate/lib/stripe.py | 2 +- ...mote_realm_upgrade--Customer.create.1.json | Bin 0 -> 796 bytes ...mote_realm_upgrade--Customer.modify.1.json | Bin 0 -> 821 bytes ...te_realm_upgrade--Customer.retrieve.1.json | Bin 0 -> 1917 bytes ...te_realm_upgrade--Customer.retrieve.2.json | Bin 0 -> 1917 bytes ...te_realm_upgrade--Customer.retrieve.3.json | Bin 0 -> 1917 bytes ...te_realm_upgrade--Customer.retrieve.4.json | Bin 0 -> 1917 bytes ...al_remote_realm_upgrade--Event.list.1.json | Bin 0 -> 1696 bytes ...al_remote_realm_upgrade--Event.list.2.json | Bin 0 -> 15787 bytes ...al_remote_realm_upgrade--Event.list.3.json | Bin 0 -> 57117 bytes ...al_remote_realm_upgrade--Event.list.4.json | Bin 0 -> 81 bytes ...emote_realm_upgrade--Invoice.create.1.json | Bin 0 -> 7107 bytes ...m_upgrade--Invoice.finalize_invoice.1.json | Bin 0 -> 7449 bytes ..._remote_realm_upgrade--Invoice.list.1.json | Bin 0 -> 83 bytes ..._remote_realm_upgrade--Invoice.list.2.json | Bin 0 -> 8567 bytes ...e_realm_upgrade--InvoiceItem.create.1.json | Bin 0 -> 1111 bytes ...e_realm_upgrade--InvoiceItem.create.2.json | Bin 0 -> 1085 bytes ...e_realm_upgrade--InvoiceItem.create.3.json | Bin 0 -> 1116 bytes ...realm_upgrade--PaymentIntent.create.1.json | Bin 0 -> 6065 bytes ...e_realm_upgrade--SetupIntent.create.1.json | Bin 0 -> 930 bytes ...ote_realm_upgrade--SetupIntent.list.1.json | Bin 0 -> 1116 bytes ...realm_upgrade--SetupIntent.retrieve.1.json | Bin 0 -> 930 bytes ...lm_upgrade--checkout.Session.create.1.json | Bin 0 -> 2379 bytes ...ealm_upgrade--checkout.Session.list.1.json | Bin 0 -> 2769 bytes ...ote_server_upgrade--Customer.create.1.json | Bin 0 -> 810 bytes ...ote_server_upgrade--Customer.modify.1.json | Bin 0 -> 835 bytes ...e_server_upgrade--Customer.retrieve.1.json | Bin 0 -> 1931 bytes ...e_server_upgrade--Customer.retrieve.2.json | Bin 0 -> 1931 bytes ...e_server_upgrade--Customer.retrieve.3.json | Bin 0 -> 1931 bytes ...e_server_upgrade--Customer.retrieve.4.json | Bin 0 -> 1931 bytes ...l_remote_server_upgrade--Event.list.1.json | Bin 0 -> 1710 bytes ...l_remote_server_upgrade--Event.list.2.json | Bin 0 -> 15799 bytes ...l_remote_server_upgrade--Event.list.3.json | Bin 0 -> 27392 bytes ...l_remote_server_upgrade--Event.list.4.json | Bin 0 -> 19902 bytes ...l_remote_server_upgrade--Event.list.5.json | Bin 0 -> 10003 bytes ...l_remote_server_upgrade--Event.list.6.json | Bin 0 -> 81 bytes ...mote_server_upgrade--Invoice.create.1.json | Bin 0 -> 7107 bytes ...r_upgrade--Invoice.finalize_invoice.1.json | Bin 0 -> 7449 bytes ...remote_server_upgrade--Invoice.list.1.json | Bin 0 -> 83 bytes ...remote_server_upgrade--Invoice.list.2.json | Bin 0 -> 8567 bytes ..._server_upgrade--InvoiceItem.create.1.json | Bin 0 -> 1111 bytes ..._server_upgrade--InvoiceItem.create.2.json | Bin 0 -> 1085 bytes ..._server_upgrade--InvoiceItem.create.3.json | Bin 0 -> 1116 bytes ...erver_upgrade--PaymentIntent.create.1.json | Bin 0 -> 6071 bytes ..._server_upgrade--SetupIntent.create.1.json | Bin 0 -> 930 bytes ...te_server_upgrade--SetupIntent.list.1.json | Bin 0 -> 1116 bytes ...erver_upgrade--SetupIntent.retrieve.1.json | Bin 0 -> 930 bytes ...er_upgrade--checkout.Session.create.1.json | Bin 0 -> 2382 bytes ...rver_upgrade--checkout.Session.list.1.json | Bin 0 -> 2772 bytes corporate/tests/test_stripe.py | 92 ++++++++++++++++++ 50 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.create.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.modify.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.retrieve.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.retrieve.2.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.retrieve.3.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.retrieve.4.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Event.list.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Event.list.2.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Event.list.3.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Event.list.4.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Invoice.create.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Invoice.finalize_invoice.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Invoice.list.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Invoice.list.2.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--InvoiceItem.create.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--InvoiceItem.create.2.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--InvoiceItem.create.3.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--PaymentIntent.create.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--SetupIntent.create.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--SetupIntent.list.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--SetupIntent.retrieve.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--checkout.Session.create.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--checkout.Session.list.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Customer.create.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Customer.modify.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Customer.retrieve.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Customer.retrieve.2.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Customer.retrieve.3.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Customer.retrieve.4.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.2.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.3.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.4.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.5.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.6.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Invoice.create.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Invoice.finalize_invoice.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Invoice.list.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Invoice.list.2.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--InvoiceItem.create.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--InvoiceItem.create.2.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--InvoiceItem.create.3.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--PaymentIntent.create.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--SetupIntent.create.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--SetupIntent.list.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--SetupIntent.retrieve.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--checkout.Session.create.1.json create mode 100644 corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--checkout.Session.list.1.json diff --git a/corporate/lib/stripe.py b/corporate/lib/stripe.py index e554e49b1e..5734b5e59c 100644 --- a/corporate/lib/stripe.py +++ b/corporate/lib/stripe.py @@ -1421,7 +1421,7 @@ class BillingSession(ABC): stripe.InvoiceItem.create( currency="usd", customer=customer.stripe_customer_id, - description=f"${customer.flat_discount}/month new customer discount", + description=f"${cents_to_dollar_string(customer.flat_discount)}/month new customer discount", # Negative value to apply discount. amount=(-1 * discount), ) diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.create.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.create.1.json new file mode 100644 index 0000000000000000000000000000000000000000..c356e43b60972b714033eedb59d7932cd411d66d GIT binary patch literal 796 zcmaKq$xZ_?42JK0ifYajwKS*w>KuV7xRM%shv_8wB1~gcK6q=T|@CXqly=RLls}~oSY(6BC_h`k}akIo0l8#*b zlM62SqQ4(0Q7ikI&_>c~K?f`YBnIJCACP zgaKodS_+sfrg+H~S8Y?bO|`dW!DLIj?JA4w$kmo?zs5JM-CSRv=RJlX%~JyTN)QPnDF&-qCsB!0zLc6E4e+9AXQnaqHjgoAR^I=- z`~JAT{RYlHuQ&c-wX7e1g!}AA&7HLY9r;WPQjE?Z(2+m0nbzb-le}dvN^VhGk&gO~ zmux{mfcKdl6$NB;aHUyqeLBZK*r!3xieo%*JUNM2R8UomMsQfvOT4V=tFCRjwm6Pu zK&O$WO$vj%z~lkB$MhreM=A3Xw%s7lBaLi{LXHo;HD@yESV(_UFl9L?OgMi1&b7Xm g!$6=;T?6bG?oba|+a$4En|>POB=P4^J$sw|1&4qA$^ZZW literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.retrieve.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.retrieve.1.json new file mode 100644 index 0000000000000000000000000000000000000000..2e2feec7c73f7d0a22aa681c8f9d87c06be73964 GIT binary patch literal 1917 zcmaJ?QBNB&41VWVpgfPMEyud9PoCd4*`gg_`t6JHz1CATEk6%hY@c5-*Uva-H4 zwm;jS?eCuV_V<}k%0me3)4pwtc}GukVT6@{Powl-dJqv5{vS_A#cVn`Dh{)u@gA&v z90n^WMPnkD|FH$v_=Ml5RA99I-GGgVRSFXzB~TEg*LBp+;yZh4jIQ5D2r+AM?r7&V~G&I(}X!-jCnh*asJ42#@5MO9C`Nz6pY)3LHsxEBcTrZvNo?D0>i%H>!lo4rO*fh+Q4tXEi zq;d)JVVgvBZ)xO-1fG0$wbZ!{I)B?)u4HdywZOybTkk8!)SHp8tIM=V9X;!sSI)*I zRx%zi0r>t1!sGK~G&verN?a50wbyCs+3fmzIM?g%U-XBEv$H2P1TPz_&>Jxr-n7zj zXk35=Pj}8skEii^w#XW7U44&>b{h*aj z4NzHVl(Z(j59IAoj`wtK~dOF)h8mJUTa@Z zetY3SLwQR-QoC7U>WYsquFrqnoSgm?-u*tg4_Aky>CI)l=;_3}TS1j?tCzuqff6B< zh=O|Dl;`I6AgOrVwJj;>2xalHCSLNjBm&xKRyr3`?VD3%DCY`rl@{D3)$Mc(15?<} z`q;3xlmc-o1m{SesrV8lgGzWU-)-01&P~(m@j%+uK_QCbV5X!vn2zA6n0_qhvvN+i zmCJf1AI!o!a@|UI0Q$0|4^BEMwqY%6G_pW^v7y}Lhi((OaZ(r{I&SZhDJ*qe=VR*l eV^OR*tf8t?yOy*o`O+7QON4m9__Wb4dw&7oOb=xM literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.retrieve.2.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.retrieve.2.json new file mode 100644 index 0000000000000000000000000000000000000000..2e2feec7c73f7d0a22aa681c8f9d87c06be73964 GIT binary patch literal 1917 zcmaJ?QBNB&41VWVpgfPMEyud9PoCd4*`gg_`t6JHz1CATEk6%hY@c5-*Uva-H4 zwm;jS?eCuV_V<}k%0me3)4pwtc}GukVT6@{Powl-dJqv5{vS_A#cVn`Dh{)u@gA&v z90n^WMPnkD|FH$v_=Ml5RA99I-GGgVRSFXzB~TEg*LBp+;yZh4jIQ5D2r+AM?r7&V~G&I(}X!-jCnh*asJ42#@5MO9C`Nz6pY)3LHsxEBcTrZvNo?D0>i%H>!lo4rO*fh+Q4tXEi zq;d)JVVgvBZ)xO-1fG0$wbZ!{I)B?)u4HdywZOybTkk8!)SHp8tIM=V9X;!sSI)*I zRx%zi0r>t1!sGK~G&verN?a50wbyCs+3fmzIM?g%U-XBEv$H2P1TPz_&>Jxr-n7zj zXk35=Pj}8skEii^w#XW7U44&>b{h*aj z4NzHVl(Z(j59IAoj`wtK~dOF)h8mJUTa@Z zetY3SLwQR-QoC7U>WYsquFrqnoSgm?-u*tg4_Aky>CI)l=;_3}TS1j?tCzuqff6B< zh=O|Dl;`I6AgOrVwJj;>2xalHCSLNjBm&xKRyr3`?VD3%DCY`rl@{D3)$Mc(15?<} z`q;3xlmc-o1m{SesrV8lgGzWU-)-01&P~(m@j%+uK_QCbV5X!vn2zA6n0_qhvvN+i zmCJf1AI!o!a@|UI0Q$0|4^BEMwqY%6G_pW^v7y}Lhi((OaZ(r{I&SZhDJ*qe=VR*l eV^OR*tf8t?yOy*o`O+7QON4m9__Wb4dw&7oOb=xM literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.retrieve.3.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.retrieve.3.json new file mode 100644 index 0000000000000000000000000000000000000000..2e2feec7c73f7d0a22aa681c8f9d87c06be73964 GIT binary patch literal 1917 zcmaJ?QBNB&41VWVpgfPMEyud9PoCd4*`gg_`t6JHz1CATEk6%hY@c5-*Uva-H4 zwm;jS?eCuV_V<}k%0me3)4pwtc}GukVT6@{Powl-dJqv5{vS_A#cVn`Dh{)u@gA&v z90n^WMPnkD|FH$v_=Ml5RA99I-GGgVRSFXzB~TEg*LBp+;yZh4jIQ5D2r+AM?r7&V~G&I(}X!-jCnh*asJ42#@5MO9C`Nz6pY)3LHsxEBcTrZvNo?D0>i%H>!lo4rO*fh+Q4tXEi zq;d)JVVgvBZ)xO-1fG0$wbZ!{I)B?)u4HdywZOybTkk8!)SHp8tIM=V9X;!sSI)*I zRx%zi0r>t1!sGK~G&verN?a50wbyCs+3fmzIM?g%U-XBEv$H2P1TPz_&>Jxr-n7zj zXk35=Pj}8skEii^w#XW7U44&>b{h*aj z4NzHVl(Z(j59IAoj`wtK~dOF)h8mJUTa@Z zetY3SLwQR-QoC7U>WYsquFrqnoSgm?-u*tg4_Aky>CI)l=;_3}TS1j?tCzuqff6B< zh=O|Dl;`I6AgOrVwJj;>2xalHCSLNjBm&xKRyr3`?VD3%DCY`rl@{D3)$Mc(15?<} z`q;3xlmc-o1m{SesrV8lgGzWU-)-01&P~(m@j%+uK_QCbV5X!vn2zA6n0_qhvvN+i zmCJf1AI!o!a@|UI0Q$0|4^BEMwqY%6G_pW^v7y}Lhi((OaZ(r{I&SZhDJ*qe=VR*l eV^OR*tf8t?yOy*o`O+7QON4m9__Wb4dw&7oOb=xM literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.retrieve.4.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Customer.retrieve.4.json new file mode 100644 index 0000000000000000000000000000000000000000..2e2feec7c73f7d0a22aa681c8f9d87c06be73964 GIT binary patch literal 1917 zcmaJ?QBNB&41VWVpgfPMEyud9PoCd4*`gg_`t6JHz1CATEk6%hY@c5-*Uva-H4 zwm;jS?eCuV_V<}k%0me3)4pwtc}GukVT6@{Powl-dJqv5{vS_A#cVn`Dh{)u@gA&v z90n^WMPnkD|FH$v_=Ml5RA99I-GGgVRSFXzB~TEg*LBp+;yZh4jIQ5D2r+AM?r7&V~G&I(}X!-jCnh*asJ42#@5MO9C`Nz6pY)3LHsxEBcTrZvNo?D0>i%H>!lo4rO*fh+Q4tXEi zq;d)JVVgvBZ)xO-1fG0$wbZ!{I)B?)u4HdywZOybTkk8!)SHp8tIM=V9X;!sSI)*I zRx%zi0r>t1!sGK~G&verN?a50wbyCs+3fmzIM?g%U-XBEv$H2P1TPz_&>Jxr-n7zj zXk35=Pj}8skEii^w#XW7U44&>b{h*aj z4NzHVl(Z(j59IAoj`wtK~dOF)h8mJUTa@Z zetY3SLwQR-QoC7U>WYsquFrqnoSgm?-u*tg4_Aky>CI)l=;_3}TS1j?tCzuqff6B< zh=O|Dl;`I6AgOrVwJj;>2xalHCSLNjBm&xKRyr3`?VD3%DCY`rl@{D3)$Mc(15?<} z`q;3xlmc-o1m{SesrV8lgGzWU-)-01&P~(m@j%+uK_QCbV5X!vn2zA6n0_qhvvN+i zmCJf1AI!o!a@|UI0Q$0|4^BEMwqY%6G_pW^v7y}Lhi((OaZ(r{I&SZhDJ*qe=VR*l eV^OR*tf8t?yOy*o`O+7QON4m9__Wb4dw&7oOb=xM literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Event.list.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Event.list.1.json new file mode 100644 index 0000000000000000000000000000000000000000..bf846c330a1521456b850d512061a18890ac5bda GIT binary patch literal 1696 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 Uw6JycUS_eV6!w7EC%^pgU-P5QssI20 literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Event.list.3.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Event.list.3.json new file mode 100644 index 0000000000000000000000000000000000000000..e7fd98e0dfac00590d85ff00c9c8f85b26776582 GIT binary patch literal 57117 zcmeHQYg5}u*8aY~!limY>{gAzmSt>D)z&TvBqV_hNg&CvHKl4vZ7k3YT_9m={`-6S zDz((IVJ67{+xd_X)M~X(pIe{v=$!xlZ7{F`R3hu=!GGZA!Qj92Z}=_BLiZZyMVKaV z(XvPOXgHb=?V0tH7~Rn*Jgwgfy$a8!@t&-BE zf9GGxvra$AXOJbyAqk2xx&8(vL5>E8$SZytyh{8n{qPcfal@d1JCZ7j#KPE&F@0uG zk@-ftOBo8ui)pXrI7VR-Cg*(vidC3p+Ur>sg+3}7QM=2kFS|>OT|}3ueSxyXamK0E zT?V^Kx2DW1tiE7XrY;JuQR0)gU!th!4v1lmz6%tD5zXy_-M|U*B06>FR=8S}sH_Cd zIinDg|E{dT3!@0=;{pQ}jK5-(R47t6(qEzcoUE}!C_jxN;3XiV8{=}7lC84Xa2LV* z(dDBk`r4YX%dn2JF2BliocNRrt0HLKT@^61y9{xp=PI8Lz&Tw^Rk+7T4mypa*NfZR z^Xfu38O~uRf*couVy)GX2f`S_ZxNYwh2jX8|GurFFx&FexMxl-C|$Dg1-jWPP4t8n zBN{B+KMj#E{Dm+gSzJQq)W1M2ivRgd84=(ms-n`((AOA)7LdEyd8im!q*YECw|4}2 zSPqJb(6sZo!q3C3PyT|iplS$i?9R@w>1M643+hfwP`q3cM!g1MCPb2oQsq0G1VkJ> z6mh9k_0BR)OUhQARV{Pi$S}E1Lp@DaX#pBqjBu-*u~AuO#n0Q@{Kl=K1fpQVP}|`) zDCE)|&#q4{Z}#@zp*+3XyC}ASoTdBgr?(fui}{zgle1Ga3HINAe6jN5#h3Rlv)jWL zi+3j{?^kF0U*eC+xqWi_dW0@t-+b8n)jk_dtGAznH{QYOEsC?V!@bM#+mrpg^4@<<@3?|uwK#PVE1T0IoxXvXQXhmU`beV#a|TI zOL<8)>aTp&ZCIh^bt431UWN&Z!dq%4T%6}A(I}m*j|hvGphB-hZlt?I!h}jeOM@#0 zpD1VcM;%3eXGsGzgk4g2lHI}wfD-Vdin1^>8GXao=~q5ufSV#}{hvMB8jZH&G$~hu z1m6sVk{w84Z7LKo2^UswLAx^B8b>S|&{$*8$UsXxs&^jFr4i%ORn4W-H_zkBA73h5 z${)_9&kezp6J`y=&h0P4@#xq;d#SrU0;LkC!Mb&WHbue@Qw%U)f%M2Mu*R4zL_^IC z=OHz*T@IoCfZ_p8x)U(BAXoI?q~RN|)#w(Ofj-pmK3{&8Gp(mx7NT0We^X&m!V4+< z6=t3#ys29yVX2`vj92~L`Fv+$Yh;29T;oQtwbMb=ogk0vcl6|F#$oi0373pUS2dHB zBXn{aoW0ktdNZHEVxly?tTOi!6W6D$N8}iKS{rm>9qsrAwsm69$J6oLk>d z5(jU)nV;#PKWCir}+;SzYxWTrB7yV^H=vm$C6)?*gr8vOk^%7X!m`3%Bj z;Mk7+4~>F(IHvaF`J3QF`1wG$$UakhUMta^qvtm-KOLRxZr`jzf2gSyi40q7e59$B z!ydb-os69M$Wfw^!nybXruHD&ueoIW%h}B|o#=ucPsY^#a{cRM_2&HT&d#S-_*f$k z@TO1O)b^;;eq&2-c(mrWt41E%F_u`%Hu-;7)ZTCEOG1{4#7pv?$fR;ID%znot4vE2 zv1~Ae4qDMfizhI)ug4;JQNRzq$$@PW*DRW=S3HHa{(HaKu@d~HPFW$AY~^u|CMm3> zianMN+?$N|o#(r|LkOdf6|rxSgIm(p<%EW-qNSUXltw$~Vev$DC(TQK@1|7=w?SSh zAu-xcWCw0$X}2&bA^WDEo{cDQSwdv38}tDuho$f!gWHn?1KAc2V);Ecr71WO8*0+5 zJC?*^#K;EQsT;{c)Gqi`@De>qHa@0f!xiIaWsotG=|~pJauZ0u6?KqS3Ccit65nh5 zRRy!@NDX=)LvGTQT+`WW$V~?ji>JT?HE<+?LL{;UffqR2>*J3WON^;EQ<|S+w+L@( zR1#9mB;D8`HstRc|5HgX7qw5w+HClm*QIiq*HMb;z-H>FAHN4L=br9=ZlidaK#wfppK~*Av3y^POx3pi9?gdEh z`uQNZ6^MtD8G1KoL&#LIMZIy|rY79)|1M?Bru-d5`ddnth;*Q7P<48A7HUNF0rarA*$Vw0BOj9yic zW`^I@I)kqVF1c5ecOi5AsKE@yh>=u55Sf#z;O5 zgdHLW2ERtY#Rk7d8RDr2{`C-I@E&@y>;}IEr*75Xm#VuTh|VJ3K1L(+E=D2ODniYX-lz=DR+w(ANd<8$-Uk zVKw+QA@2NNX_CL2sWtdDO6nRaZt!b@_gIXVe)Uyn_`We=-!LPMM8UFj!kFk36 z@S0<+4nWl^h`^{wzH~F6VbvV;Nc zfgTV51&(zy_%$KXU>OX4&EVHSL=1jS$i#pl(3+Sla*5;8L=5t2;nyx|{MuRKogB@s zDv2EXU%;=yA%cdb4P=cxI2Vj|!Ybp}Wlw7l*a-%7^W=gKztGb*i zxz;Xe$(+#kXX>Wpnkl)~`Oc8Dih-=LdYA^X#$5L&{;j%!teKK)!06(H+Wt(?lw4zG zf&6VsuGO?4Kgkam>t9=@o*Lqn zb=_^}=|k3JnL~qHYXs^0ua3~tTf)@V`Mj*p>KP&2qSgIhDLLhs!b)!^0)Zf$cr zGt(;6vrD&>rMOpIz-6Zd!#> zDd~lXn^vJhn>=KQxM>xtJ4q&?f0>}~P}S753hhy+;K%kDTP<+v(U@Dc3K`J|N_)0m zx76U)XzNPTDl|2%LQShs=1G`RYbYoEYN7RQgc6^$HC0>TnO31KyST~LDA!G^P+%>n zC*ENz)^>DVrSWguDzx?)NFUY^&Q8drg(fyL3+`WE5RYnKEud_m$6r>u!@)kfUYYla=lkYejjl2E^@` z1Q)V~wvvmD6HL7-@snH|4|D3!k0<9>@3Q@P@;_9tugXYY^KV+SPx7e6`vuoxTDQQc ze+S!$d_S$Au{HfWC(XUB(+_eJm~`_Y{4{F4frjik8XO|8_-XJe@wfEDiLzq7E!*59 z!dy^ntE1?6E7>Q5ee9}%P3n+bk5Or`j|Tf_u#e2pfu0f-Yl-in_Aa{*_OYXhIt^w! zBbF&N8_(gX-79$-3!g)G{f=G<&HRN4Yr!7YC2SW5yGQ%U;hw5pH#jj7GJR5;^$$#+ zRMRK5E4oapm_Dh<6rB?W2L3hRJvaw6AO@ySYRA{$ih~?&zI!`2E&1h9TJUZ2FvnNN zj!>}no-%U$h-JWg2E0c&#(?*PEXjWjc#mTdm9vK+4{0YBRDKB>hW_Xtn?9+gPpavY z+GAIH&?cZ`a>xkyG~{}>57CYhZ5B58`*V~B0~Wd%gvr3M9s3^|QI$cH-Zno>q~$o% zC)E_4qgoy3v~j71r@&u;$~ZJ{@$&$3V+Op}NPS5QX~28#RfUo=EQxw+M@}V~NDD*4 zZz+^|EJMIL)@f%k2KcQ3%7ei@>Qo)49AkBjI$IzGt_Mw@)SB$@lj)PXO{$O<&8)j} z0Pn5PL&#`BpH3vwuV%GG%t*goT z0P@jsaj^=sj6m}KqH=TJ4Pg_b{1Q-2RpO^nL=aM5)B}+MNmAiBsvR|LQERjI$lIb4 z9V;EqjrgiYHo5p}zq+vPzYJe>lZD66s$i6+w;$1`hMfXT7>+Z@vBOc=y~Ol5yqJyy zC-COOaj-KVIwNN^T+IB%(3#E_zCW4U-gHM8WocR4-pZCZr%-zFVIo{^p)7Q-abARJ z0!qcQNA_qqnh))nT$*~$aTYUsI+fo7+#O#P6L=Lof`;>(a=A7Dz$1_pctC!3kB=O5 z8b_}ex3}ljg4BN1(u?^ayGU78n zosy3L9vY_sdCji7((h<>9Hg+su}ZuQ=V3}b9Kjk)R}j=`FHJ$;0*Epv+gcM{ie>9; z(f8?HPx=`Uc?1iqdr^3-7e?Tcp1Xy=!t~oP3)ZhYtGBp!KHr(x3Q`>=TOWbqEJ!Ek z0VG&d+sT7z)Nj}CR2OEg;|xje_LlZ%QQG+zD+Tu8zHG zbv%mpzV7TQoCBlRcT%C>PZ0+k;L`*^1P9q7gD<$3A%H$x&n-jHMK0%X%?p<~N{VHg z$Lr74QU~^&sM}}hZatUg2;~$_h67At!TxKQi&9XZXx&gr zwiPpIzvms_a-)H5sI-H3yGIwtlU(j>FON5P5MPs{li&rAI%lUAzSUN)|aGaqxo&`hCnFgLW zUwYn5ZnoTL$z1%fNp$H0GqUZB_gWRl72J2Qv1e5jW`k#_2z|M^R7?blu`kg6hm2{E zqJ!-D@=AS_hzN95b}wVnCHAV;2HQ3mKz-;2V>+?t$74Kt3Kkxg+)tmEMsaATKyP=N0p%s05wfpt(`FZ?m_t*H-Gr0;RTDu&J^S6Qn*ZVmw%KMm0hp?z)_WCOq%NL` zN~+ug^{9IHe7Cflf8MZesu}a3PpJwyn}&5ZVgU^MA)ivUx#YFH2d~H~f#3I(dVH65 zWxcwGFzZ7ytZPfUJbJ^b$@uo!olc<^sdnjxJ@8X%N9{IFvC3Io&1m1pzJ7f*W}%Pbv`?Phh8pr{dyI8`#PD7XWkM|hLgo|Gz65>Wa#;L3`RD>s7{LW=h2jX8|7O$r zX)AimVvm~w`6zFym7+K`BMP3&U z)GHcbwz8N7!q4hJ_~~RcJNr=nq7Viq>HX>uuJxr&drkYDgXfJI=yPI7%ea8{iei_1 z%t#2=-rn}Ya|qMRo2rWMPlE-5p@SgYv6V6bzc25;Fi=rsR z))pi>#tO2i2ctR#!1fNpJ&J3atsqva<3PeJ7$BN~8>K#qXw{3>m!~52th=3jBeJeB zNv9K*B!1)VA*`{n_(nszHKNP#6|FJ#qxetqkvyO%D>O8`;Vb9M&8L_1S^%G}=@6W< srIu&_V*N&V2XqpN)#pl*reQCm5M+f8WR*y)?d$P2J){DZ==Z<CQczGzNi0cJvQmhS)dBG`5{u(=^NUh}B58>^#i?My{G_bZ Xv?vE8pkHRFpIVlhS5mCRRm%kck@XgY literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Invoice.create.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Invoice.create.1.json new file mode 100644 index 0000000000000000000000000000000000000000..32088ec37722aa411fd48217305a38bd8a16d04a GIT binary patch literal 7107 zcmdT}S#R7n5Pr|ESO|S+fh6A3vHR4-PUFULvpJlk4g!KJad&A`luVK9BglX6@Q_GK zt0HaD#(6Oe&Tu%Kn)fQB1T9(mzSu&bpNednw z=at_$sG zV$~1^H;p@(u^VRq>`LRx=+SVx|7bj$P0hKf5`ys5WLZ_2(^eH&KubzkoW0Zth%kq# z3e8WZ_%vtF_it}k>O9;`1OzG*q^fV~PSb`#rt`|Ql{L;8k-yw3M$3n3k+*EPLi5*l z4xn;f@Hil~Bq)vUHeHeAS|?l|&b5u$F<-JDKN(3zmRK=~N_>+O=!z!VjqzHeDwHsF z(UEAQ0^+Y@(U`4LLCbc%X0$SG2a4W`TMKt9f-*1|s*&YV7sLjNTwku)PI#sZYk`?7 z+eWf13TblbR|KS;@=ZbGi>!+Zs;8D9C3NnZU8Zjn%F*cMhm+Uz@aZcoip#_EYX9i* z$y5H~(8k!=MP;@OcQaf`C^e25y*2%dh!BM?vE~4#V<(|EHneIrI5dq3t7|z33Wl8@ zO#=>GBbsJxI{(3VI5fbcmo?m3L?YKIQzlZjhudn~8pT=2NSMpyhw<>?aJZ8fT&@S4 zTn*~388q3|l~r$c*>%w5liZSPD1n}Zf{;x|}4722Q|H^B`LE}{HEtF9?$xfHh2qvNn?BT#My8xE^sx=Po?K7rsd zQk=>lE})l2c)Pc^I~fNxrxmu~uJy?X4gPAg-50CTvKclv(AgReFMX2b5WhXm&R)k} z_2&x?WkqqJN_0W=TM&l{q&@ir38(2r3#J$ds)G{V$roSkD(~Js+~e zo88B;=Yr^f*$2Pln}*i~S>p{gu#qTUl_aI`eA)M`aYs@jD*YeryREenyOONF_l za%&*uO{wcWfu{pW3N;YjDNb1nLm*gz9A)5R4lg_yGm6Rfx&_sO$aNb2}G$Y}#W z7@#&J$6;!k+uzt>IoxxyHw*f$593=}{XLnqApT5$t_+^wil#ySlN#Uqf>O)>9hL_V z?9sd94^L*NVY9$HY@Tlmt=q9YEAUZyu)GX?@5hF|-cNjY|9vcy-Zs1Dx@i$MzS7Z5nIvIN`KOy95LRPaN zTVS_8Ut0LhvHbA#>iPcJ>g}uBbKFAV?-R=>A)r8rL!b(f9MtX%j^AA%52Ey!F#cfl zRXE;O>u<<5kk9Q@H~8@Yi)>&=r2*xG>3BN+DQLL=AKKroja#U^d3H4` zCgD(Z=b`=O=8wtxc=h}4?)%@!Jg779{QHFV7JT%ByHUI|@b25|u6?F!)ULzy#kBb+ z>nzZHdj1kE#vuBVtm;uZk%h#}($M;o-kGrEQ?j!e?KnKF;GbUZX~!}|;DvcfnU&IWW|0Z_MnFfJr(M+gpiHeB)a-?@N*d=-a6-t60 zPBc!77T9Jb6_FCAWIqVPgJ=0mpp#pSVX)1Tny4^*WIZRkc-N+# zj-KCYjV7p;wm~hP#xl%K*1>-#1!l3~R_(ZoIM9-n|5&!a5|n~`mENU--C<||lL!#4 zsGBPwzBAyP%&!Y}h^z-iJ-x!P26INt0VI~YtS3$g`--57-WosaXqE(GcjYW%6^=RK2{T+(+9A^-28;z2f gOe}$1bS!F909RzOhVia~Am|S}V0e7Q?|r%VCu=3tYXATM literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Invoice.finalize_invoice.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Invoice.finalize_invoice.1.json new file mode 100644 index 0000000000000000000000000000000000000000..b5c676650e1156050d47990c388468e70d0ac90f GIT binary patch literal 7449 zcmdT}TW{Mo6n^ioFoZp9KpV@Jo!AA2EzPBAZgtZ*Oxd zG=1KB!`z*!8pjWadMRkKEC`f^P}=q~vEDX6#h7~aZwU!8Wt7e9g4CyRT=^cy0d+B_ z5vy!henvAw5SH6lG&m<=tWR5RqrMX15l=Fr9L;!yu(!m_72eNqkd}fF_I44R7$jdH zRuD+S@HCJn3RU=;a?Gk0UByzJXMWc%z9*4o{aJ`;qcjjV}K%~5cr1?qpZo)9gL|y}7#m8Yl_@C=6pz)3y zg*6+x(8^ z64|D001}Qmd&}#^>hS0tPNMt6yR;2q;OOIr%RBFQ@Nnr&#@O+Wu5ONfHyl1(y^h!C z$HRBm*H`}J=pnpe^X~Qd)W(a`)%(Mb-HF}LE^ocF>4|@d!+3IjxaeG7AFVIeJ&JVSkIx>pA8AQ+W^}!(Rl|w15 zA9=JkcxW6iz!1(EWjLT~34e$rNhCV7NNFHSj{~$UXDoKC-3}wh{T3suRt`F? zqB%rk=8JW6Xk;&Yq$U?g3@0;ySSVPz$&GcoY64X?epxmBvx6{mI}2GgdJ|p!h{9DO ziigsTWyiE*kKD;?b6Eh*8b;nWzW`;hPR18`LFk>L=^Zq=*h6GaZD>RzCJB{Sfy$>| z1icR{3P5nm1?oCVDtO@(!8JFI0XM)%UQ^m~oG6s2Y=uNCAb-G5)356}!mhwpo<@F`ZZeI9>mdda^fykC^-Tmv zA9wewo+m^EOud&jd=t0Rl=yf_C2Uw3OJm|vxc$|0pm2v%lB7si?53Fnvvd|EA-c~n zW0y<2eeB2J+ODrc&utcD>FEJKbw@G*o35*U+;*7mvuEX-epwR*H5Y)S^U zIJ`#$2vjN=%Fu(JhFcFBTS&#Bw{Bw`xl^9VO0%hnZPl1rBJc`6H{fUU#h|ia&JzY7jpWuf5hQoKn}we*wl#LCL}T z-(k7&0yw!jyM5Iko6Q0b1^M*(7M6PvK8X)z_ona7*wEDbR@vQuAIqKYpwsURdi^r@ z&>k>aC@gon{obC_>-D!5>kq{8?r_-e+JlPM&2Yi`IokdM?*-1_wZCtgd74jo6&IpKeXS>&%F2a_QZ6e3EJl+SnOUL ztX_Y(n48O*q2fP*_MD&TRzR|V_CoyBpxv>11G^_#rQ*fdTuJ{F+E3U~nXS&-$*LbY z=1}$Iq5bXhqvM~=FL!r8ydfi_&cO4Z6WVL=(G2cV@yWn@*nE2%LCm6v3ikJ1*8I1UtxFP`+;geLCV%T7+(rSL~1Io4JT5qKeQnyv4qO&GKo zc_=AUtjKgdKM6l9mW5MABOf}Qqu#;({tKX$IX_Gb#0-~f6oFOL4XSZ9ilo=FjXOX~ftfAnX*IGU2DENkKA08R8zi2j6$3&K$x-ohaKQ6m1^#^tTm|Y?dxG^^>X84 zMG?FP3ZjB}8~lga(RFJQRv^%-rog literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Invoice.list.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Invoice.list.1.json new file mode 100644 index 0000000000000000000000000000000000000000..e39960ab7254f5b071e40ef45d6574c984929f3a GIT binary patch literal 83 zcmb>CQczGzNi0cJvQmhS)dBG`5{u(=^NUh}B58>^#i?My{G_bZ Zv?vE8pkHRFpP5&dpP8Imti)Bz1pvYK7f%2H literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Invoice.list.2.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--Invoice.list.2.json new file mode 100644 index 0000000000000000000000000000000000000000..0abe66f45c31882e8ac7c45ffdcf2dd611d08971 GIT binary patch literal 8567 zcmds6TW`}y6n^JdMAkm+N>OMQ=Vj`G$P{>!rlrqS6Da4 zL0Vr7K_3@^XJ9pVJvg5*JPYJ;wJorca?G>bhdLNvi~D9Y2*7TX5S&Ugtq`*e2W2o^ zA14c;ODzU&6a>T-u0bK;ek2UBlqkYrgH#g-!F}Z*xPwa-2hZ%$#KVN0IqlB-aWGOE{nrGEn4n`A^41L-Mu;Xa(Y<0f8-Q9bKljvsmI_-n2IQsbEwcYWfyy?&%(n62 zPMEoaWszHt%j7%&PBtmdh{DNYm`HB`V7 z{a{l|fIxwqwNuw8>NN${po~#&_z+~>8traxZ#hFFhlS7v`c-;L0ZGH+iuT7&A*nJ% zS|%cG+c#yBa2uarc+<0{mff)i1%fDAW-(e4@kD645+pkE0ah7xmo1E4s9k1^3Q8mB zaT0l%$|>dw>^dVpUQr2SR>snpxD;MG<@2Xd zk5iJQNLNGqaS3MWJW4`zlVQdw-{>fQAB&o@;8lS*h5TvQS`TvzmVrYnGROnHLwGd8 zp;FlDt_Q&F{8inO-xj!6t;4w--eUrY8WjR*?E$6$YXh(d3E`B^Yb$OU)GfBsY*xkI zrhhFFEX4z@u-N`mQqi+=e`_d|NN6Zfb*4!rO_$aHrtX=Nteow!QRjNC!Bs7i-FRRb zR5cZ^OnbU< zstbdx5@G&1Cpp9I!FaGe8rSm&$`L;E6el^u@#vW|8jU-P;Q?{da55PW?d^s|-8l#* zs|S&!y}!jtrz2-ra?&v&w+>m1jYz}!-LVz|4~~;|FK!Pe)5ZC_^)+r`k)MZ?9249i z990mlFcOG9cs}~E2+8p1H__3P!8h|!n`k!}n1pnynjgJicW~nMRIi{%S#LBP4SzEV z{rghX<>JtLPp|e(r8ZI2q6Dt3i^q>h0>I;~y?gwzfXJA*V*}f<-?MMYX`# zW|ES^51yv#CH>Gpn*`%jUHY|vo6n^o(CHW7)k#a2srF(|tF0A_M;r%g(gmNMl@5`m zo5%gtAa5L}@W;mHY+rRGwPppAZhU*T!?(rAUD@)-YPh7oiE~pemW4AlD%o`gd!wBf zFP=aBA;9o}i4w zl%jd0T1^S(&_Ss;0D$b(hyx~7EyDw-vHWl~`#_N#RpdQ_+#gLj@tvMaH3FjAg~;d) z7L;J=^#;dPBw)%=jAc~&0x=j>q~*s;@xcx~5c18kHyNB_x)5-bz>EeJQLn`eW^Eqy zKjkpAY#`(f0@2NYk8=1%Z1#{WH9ROcNk1+KO6gj5m0)Zp#xF&!sCd{bY~lF^+* wS6z=7s$sEi$;^ju{}h}iUfa-$G(#lgAW~maO)JS%@HU{DUfSrxdi3?tUqvg~N&o-= literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--InvoiceItem.create.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--InvoiceItem.create.1.json new file mode 100644 index 0000000000000000000000000000000000000000..02afb0c5bfb9ac21ee6f3a7384a18b3715f22bab GIT binary patch literal 1111 zcmZuw*>2k~5PZ*92zqLP7VsfENnev7J>c3cP^1S6f~MB?+7zkqaOxQO_bw?~mRr9` zv&-Sk>~epRWjU|3S1x~-z3pF(dT#cxQ zf+{|jfp5X3g@!5>ETO-CM+nP6ipcuY?~|{~+q*B^=*Qc&9Zzna?jI)0h7#3QqX=xu zOBqi}+(M99Hpepm=!CiLNO;D%qw(J6?F&$G>N2T*ekAj zMG?G&(wW&tI7~N^uy!L3s;J(i9Mw_Kv-j%m7<7O7^J%1q_lMihy5A32Etx- zsQ*ixdKHR|;?Z2E^Einnrevu$y7bM2!Y7+JthYv72s4@_&Q*NiXJN}2w zVa2zo<7#_lYY@0ViZAgy1Y=p+l#U!{xUvgvD)#8Pa_Igs=5}?Qj#j`Nl9|L8CUp$C zeRgEKQ(+~ksJIN{jV<|cXN)#Hy{2|A@{WdnxG1-N-hFom;dyXO=b`h4=*KZ3wb*pR Q>8c^P)!D_*sC>Ej3%k@p;{X5v literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--InvoiceItem.create.2.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--InvoiceItem.create.2.json new file mode 100644 index 0000000000000000000000000000000000000000..2b9b2e31b6a2a87a359d90c86751dc2430a901d1 GIT binary patch literal 1085 zcmZuwO>f&U488YP1U~N&$2OAexMsjmAXqxAz|dh36q!kw$daRvc5TuBKGIeackRu7 zBp)9ish6wKD3gtiCS;#S#jF~CVnjvfz^Es}vgqq9fj-y<9D^!)v09e$uF*I1=jUzQ z_c^r;K=FJ!F6YxpRTW)j4PH5H16sqy_fcaz`XW85RE1u#1i98+y^-2OUzh@((BFSL z2y3Q56#4gG%OAVN*IViAak2NcmEYRy&9SFM^I%ain~7R?l^P$QvGv;y4FpM|B_+PR zc4>CK2gPn=i30;PJ!uOLE%$#RlgK78{F4`xSzhI{vf_GzeUOd`C{UHtqAV-Id-7IG zw&1L(b-l<$C{-YllyJ6y=+>w;nyv6^2Mq@^(jlV3(5a#f<$!$ev`oj7`MjEpXGzOP zo8*efyX;8BdHp9<6z^T`)REDvvY1?qUIIK8u&qwrKk}6*w6%xWiUaT!4XEEaPPqov z!N_j7LFQ!>y-jJP*4aAt8{$u~THHO}%5;ReaR#2*lx7wJ+4a)Oh_Z>(#?F-j9K{5M#5YP;=N10o;|llXX37n6(riIKtq zE^5-yNX^TogzR!J&N`Xi&G{y>LH|7GE}4((;S)Ql&UjoRfWZTzpCFXB>M(F-D2Cu9 La)`c@_ literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--InvoiceItem.create.3.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--InvoiceItem.create.3.json new file mode 100644 index 0000000000000000000000000000000000000000..6dd0b9bba789ee1cf3036b044b845e0b14cfaade GIT binary patch literal 1116 zcmZuw*>2k~5PZ*92tprw(9Yer0&WWw4eAC7P^1V5ilU>nDN^R))-m$$-K7r8so$jC z;c#|lxjV_ST+}w2kblhHO&McvsU)Lw%E&Di^XSXGEBat-<)|p5=kuF0abN3i*U!&S zaoJ)@5ft_(m+b8Na(aG#nogF=O9xE=Yv}NsDSOY@huWG@Wk&tUkS#H1C3u;{w8y$X zQD`Dv2<_ED!(;XLV=6&O%m94yI1W}Ac@UHtGAW_p(woHFMO#qk)iAAwoKZar9cQt}afeDPC$F z2{@H0h(yANwdhr0zjZmOBcmBx?~M*j+})QCxBczMd_@Xv?J72WrD(ZE)c-k-SOaop zL>g{{+$Yi6MDZZFakh+YLiEY!->Z2Mt2xuN?Zu~Fl~Xi2`gVAG5Px~0DzO2Z_B$Hi zC944u}1L#I84V!N$pJ@-X2ae>hKa( z)Iw9d36k%3##tx2CpGLvKGHBrd+TE{etf;~oF>NeYV?NiCvd5)T#d{btHJW1b6h{7 H^5x_oj8H|J literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--PaymentIntent.create.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--PaymentIntent.create.1.json new file mode 100644 index 0000000000000000000000000000000000000000..99adf8661c6307b95c58781187af87d134e3afe4 GIT binary patch literal 6065 zcmbVQTTdjn5`NFG7+HBtU@ow*k&aH-s|c`5Sg{wP$nv;7GiLg>ZhIJr_P?jfZg<<= z&49uSV3+N>epO%p^V4WVSXP)^lix;@ieG3 zxJx)Dr+Q=)-V&4HbGS7f-YSbqvy}28={w543ESFl)$zr3o7wmW{t%Ht2@E_ya+dkS zm^%K4l&d258_jxfC*dsR22vD~*J@x>JP{RFvebowx5&-)`RV28)yb#R*P+|%^u;pM z%82$^!Xek;LfDubjSpTPO%D$z;kHpq@RdfYSuFIuji5Tf(bYoIkj$W}!@?S(SQnRkJ~ z`Hv*BDoqoWz=V1OOruj>(xvDDQVsDV&M z8-QbJdLO(GsqIfyd?gZN;h%&mf(RhE$SVL$mV-MmQ_;fa&iKAs80(%)!jQv7CEyL! z(&gD?Jd0133f`fmP_(`Sub3TJpF_x7}?bS2aV?r(zy&qhZK zNKjwTWW};n=-=IWUSv-lbiwVIRYBPS!nnrTGg{x57++#ssgOZ9DCW07YY@b9Y#^9M4Cb<+9D&DuG5b|@e-mU_TtODBO&ot zg^~||bc4PunT=8h9Q_y}b6qEJDf=awy*d7Ve0Cl@O#DGNf1sshMkm-GZ`%HNJsTh0 ze9|8uKN!MAqc*sgGlhT=MhRBkT!D4#O>IXu?|%@RL+7?|vyl}G-bN9qeZklL{)@M} z)(mw9EtOh1P$AAB_evug^wHf1_=YzE;5!%q0&6>c6_spSKDqwXwLol3niaWTfp$SB zv)19>y zQ1Io~v+6=_&tAzF>(kSRu&X+881LW&Xo>APk-BT6%wZid6{Zv)?q?`#a<+kvX9xD3 z4wg9%Kq2P{D)gL5%$19>9F)HT?!cf41j{e z(ntj|1g12mXi?&jZ!sa-MCMlNXSGG>rcO9F*?g$; z_d#piEdKHMhnj<+9XH`i>I zyuJGTZpE{g+pG8G!`Z2j^u^u#i{<<(zrI;c`N@m(SM2NZz z_44-H!Rd#snU^n)w@hEYzB#{ICm)ltJX=n0%lCI{x_ukeBAC@MvF^a-wz^14JS+S= zYHKT20cP27cJ6^BY1@1%VRDHM>cSBfH%0_(5YE-U+}}+0YjO&|``xP^Fu}QKOMtv_ zus2fN^|FmrD_NEfs$!5JRbkZ7jOx}MeOwHs!lTTlr3!%$EEHQPgkI^15UtE&A-4nS zHn?3G&V@h{-TISQP76xWI!Yarn(d`341UfC$_qbij7D`-VL}{==WrxR9K*V04Mgw% zeyDKM$p3bYBA|^8AK|HlLP4}p77@sfQ?(RbzAo<059gnc&iJ%gT>df5|2&>0(6p?t zp!?vS%_fFNVm~(vrtm7yp# literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--SetupIntent.create.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--SetupIntent.create.1.json new file mode 100644 index 0000000000000000000000000000000000000000..0c778c2321db89017d4421a1ddca5a9a56ed5ad6 GIT binary patch literal 930 zcmaJ=O>f&U487-91U~Q3tSN%*ICR5StVr4+K-XaqSc!_|%95gwwrP<6K1xnDI~{g0 zB#Q6x@sZw*#^VZ{(~3h>)>I$HCTabygj2LFMLBb@ZP7&5VyvwQ{Ui>Cqt*q?JVF?9 zaIG>hAomyvR|SlUO%`|8xA&KyZou2kWfPX|X7jTAe09iU%j+rFdg12VZ8Q7m-AYU8 z8hs&>QXt{zb2*+uVOzEOYX17VPE7|E7`RvN zv}LL7GZV@q&o6^URj%}Z`5m=}kQ(kSGfMP(g-M%Cle4%osn|`8wXsAVs4C>5`L@g_XY6PnX;C@& zJcaH?_k#uOZ{pGEl5Q|QTmRT=qJ%weQl3JrJt7l%>5|VrR&d<-s?^)lx3lp?Sll|y yvVQht(eYQYJSel)$WlP|j}e6kF=cEO66c75Hn_l2fOQdJr6frqYt9V@H= literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--SetupIntent.list.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--SetupIntent.list.1.json new file mode 100644 index 0000000000000000000000000000000000000000..bc1fed01ab6ed69d2bf9d46b884b9f00ab72e443 GIT binary patch literal 1116 zcmaJ=+iu%141Ld67c`+bSs_NNXr*qEc^msTi!LjNmOiYBYgs42`Y) zuuy;zs8j~w4#6K|2_+MNN8vEgd*(4nKA!%#zWaG`c?-@iFBZP3;?1OlRaeJvu1lER zYyWL2b^Gzt3hwmP*I!q+r_*;Ire|N+jw+!-z>0v!=cnc5{OoO6_Q~jJ5Ok@nh(4o! z*Xr}+>1iGpJxGOKIN81=MXl@uucSkfvPS~Q)cN(1`ZfxD5+cNwqjNUVI*^@oM5=%g zP`62|!>nAPwiQym2IX-#r3OO|r}#lVSq7c+>&>p%;9u&HhZ#Pwvjt5_(KHWnlqQgK zJ$-BV3>#22xApMt;hwyn<-(d;&ZFC|O+`GVI#Tu!k=yJ}s(M~vT44b$>EA~v)~T`g zU|*GV0nA`{uf&U487-91U~Q3tSN%*ICR5StVr4+K-XaqSc!_|%95gwwrP<6K1xnDI~{g0 zB#Q6x@sZw*#^VZ{(~3h>)>I$HCTabygj2LFMLBb@ZP7&5VyvwQ{Ui>Cqt*q?JVF?9 zaIG>hAomyvR|SlUO%`|8xA&KyZou2kWfPX|X7jTAe09iU%j+rFdg12VZ8Q7m-AYU8 z8hs&>QXt{zb2*+uVOzEOYX17VPE7|E7`RvN zv}LL7GZV@q&o6^URj%}Z`5m=}kQ(kSGfMP(g-M%Cle4%osn|`8wXsAVs4C>5`L@g_XY6PnX;C@& zJcaH?_k#uOZ{pGEl5Q|QTmRT=qJ%weQl3JrJt7l%>5|VrR&d<-s?^)lx3lp?Sll|y yvVQht(eYQYJSel)$WlP|j}e6kF=cEO66c75Hn_l2fOQdJr6frqYt9V@H= literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--checkout.Session.create.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--checkout.Session.create.1.json new file mode 100644 index 0000000000000000000000000000000000000000..c2c6b2aa314a77014c7ae146b848df16a0732af1 GIT binary patch literal 2379 zcmb_dT~jJK5PkPoShKbJw90oOx5~PEMe$y|qJSWUTLd^)} zJO-^1mXyHu!858DNMd6L%bOb$eJK<)NPiw`gU?S5Xrm!sLR^S}%AmlerAC9ERZoCZ zep02?>Pdq$dQvY!ty(|xrwxBvu+c209133psw|a63I<98!M}6{0Vs2xbnu4}5TBR4 z1Tm8W4@e9?#DK7faGh>=&W<&(7|hN=h^f_~(65@tPE0~$sa~u$>g8Isnj)~VtGwFD zp2aYiLKgJi^qJK-D&h-}+|A(cf3i$T*ubm9m5nb|5$Yfi+i2Yg=OT)>rnLpYogR3B zdJHrPed30L>=MctM8=IXd%RIX3K3$Ad-$8&-&W}$knP5LJ+n_4_emS5aU}PX!t(@# zgP}sYHuH{BaqYr|057>>a~eo6f32+)(J2dqq!jj}Xpn<+WML$lhiWf`!pDV!AljqK z#YIB3Q^uzzNnU-Un`CQ26Y3J-z-z_YStA>GqA-tX;$%)(X{{f=O_rt}-ISlpcGWe0 z)KUJzZ>|@UR_F3tQTMw~%ii}zzgQniJG}i_v&E8_rz8rs3~>}&YK)NYjx<^Q-Sw${|$7sxnjqo*i8>X_7 zo(5y16nHp<gA~%z-_J)|_he3@7zO%@JL>oh3qZ+v;xrE$2p zeA07n?;BOROi|=Ev6E)cI(E@*c*~!X55_X9+MFQiJHq>*C5#|bLTW`M6WB*~JJl=} z$uM@nS#%}*`264Bm+a$KfTfdV3iPWshyc(K6XoJgoWC`{Uo~&;1`niv)$jkf>yRIp z?K{H63Fsk)akZY&uU!Z3)-5@c%?JrE0=+d_{+HYtmtF!jH-**!RWO# z&T>yQEw`g_D+%?fyV|NAE}f E0;UlLApigX literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--checkout.Session.list.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_realm_upgrade--checkout.Session.list.1.json new file mode 100644 index 0000000000000000000000000000000000000000..acd035d7d854d8f623c2aa935855c63e98ab02eb GIT binary patch literal 2769 zcmb_eT~i`C6n*zsSiQCTw90oOQ)SJLD9+%B0)oKQRw^WEh^Es`K2Wgy?|akGbn~?@ zyDt{zCO7w)_z4hNIMpfo1&STG8UJ{FoKB|$_R zY;01+y3)@i?v1$+Tuu5FUn_(VtQ7_mL5`0$8vr4&o;g4(nIA^1Y!j$E{23T4wkl=(# z%@F*HCoEvnT*e*!VK`Hl1#eS15gdX@F`p?0r6KOR-{NDvMKhw9*$aknjXbveZ$LnI zCWg9D&6jJ{Vx?S8tFp>fv)H?By$*RLAfykdhgc2tBA+us9bdox&SZ^4hP}IbGqkT1 z30eyHZYPfVDUYHIyE{d>9Y;=r&I64?A2~vS5rhe0k#Q1OC)rcds(hv(?!j;Lcwff7 zKs0O1<;1>Zc#GSFIRa7+PEnEwQD!g~4vK8YE1~YU!UEXrE}!B+F!R^a3Lc%4FxXrT z{Yo4p4J6>gYBUYyfn^vn7^*d+!LRq~aKT1G^% zl0Bl48!1EzOa1h1G&j}guJ~HCi?;Ejmh@+SeK{L7TG!w5y4!x4cfQZM`D$O-{{7F2 z%@_D|)49jxJOmndP)nANQX%-91z=)uZp&6Y5fUu+(gi@++Bq|fDM(=$3@Ug6vLL9{ zqF@MMURMa5>8D{!(DB{v92+F9gEwpdJE?y z1xgXlSnMVWWbFw%g)fX)MpY~OL~HSG-)6^}C?1o!SF{B;g~#^)eoNPnd5+DU)K^7+ z)ds3yVC3;c!0cUq)W6@8xXQ4_HSbF<={(n+N$r)*ts;>RP5}z z{4?{-JkRFyj+BZ>se3>7#oBk(v?WVkf=##WFC!>J@qgLh-VgoV>TWnVN{sOG@iJLK zQ?XgdH+(6S*!0gO6|C`p3w&lRO*WwwP)IVGF`MAo-YK|ngNfW|aU+A9ucg9D_q15* zzB^=?BtvO3XK^?(w&w51S>z8-#hS6^A5u)6tdk{)uV3zIikt1X>HDXr&quG{2O}ZI z2yLbsx!Mftht0>;wLc+e<9}6<&kT_7Du4W zq}j(^@K-W*L*Ro{!Ujne70!>JEjI1UI5M`&s+lH%32toKzKXTjjKtT=5`T`-vzOUF DUc&hH literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Customer.modify.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Customer.modify.1.json new file mode 100644 index 0000000000000000000000000000000000000000..fc54f8f8014dca7e60b65485c66eed2fbf3dc8cd GIT binary patch literal 835 zcma)4$!;4l488j+j5*gq#)v(co@&57v_;SbNKvFH1X`kMx!R(|m?X%*my(xEE=6w= z$@d=l$fwD4+JF!NV{G0|ZPxlt32i`w5p`d@;U0(Iwd@=72i5vo2{xAj$ zl#q2|{2#gKa;W@gNr76~`;0abmjoTL3J8omD4&$G6mJ9?cYy;KuknIAGhK3l3)#V} zm0fc{sK{NeG-q-&pmf1+!DvkH9=! z#a@yH0SR7u4pfwoMGSikET$s!AGX&H#>kuxu8tRkGrFDYS>LrwddX#v8_9c#&ACYn zrZjk(tFbsFrj84USni{qOpJtCjbBd literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Customer.retrieve.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Customer.retrieve.1.json new file mode 100644 index 0000000000000000000000000000000000000000..ad7b096a0f1b7396c9e1260cbe417444d3ca78a8 GIT binary patch literal 1931 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 literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.3.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.3.json new file mode 100644 index 0000000000000000000000000000000000000000..9477f1675fa61631ef2d416fa05aa6ec28743a8b GIT binary patch literal 27392 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 SuP|1v97Y4bP!;U2pZ*U?M8<6Z literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.4.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.4.json new file mode 100644 index 0000000000000000000000000000000000000000..3d46e7c9e0872f72741666c9dbffbb73788e35ba GIT binary patch literal 19902 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 literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.5.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.5.json new file mode 100644 index 0000000000000000000000000000000000000000..36cc19d60e66133685cd492403fdefbdd827b198 GIT binary patch literal 10003 zcmd^FZExE)5dOYjVF>%M0dp){wqp+%wsc9Fwuzf$cA91=2wI|JCVGoRIgW?^_Z?sK zPT2`IY-`sKfomSg58utM!NY3*X|9q7{i^8u&11^vs^w zHb?E=zVSmUVn+ls;=pis-|Ua~dxO524XRbs^!ymy6+N-1lkoL2or^;u zru<;qv50t>`qaN|5{Q>H47KB7=u#UqY1Fz}`7l}#g0N6idjQ6W7b>gO)sUm&YFLzz z^4Sv>AndHLZ}ZbHup8F}JkZfbU_p>5UKiX3@$uXhOV_5tXv{E6QkyHFaJzmk=`g3R z3-&<(pjhI|!+wI@@KbNO6SWd_sNfx=)n_Yk;-J zCB5tQQA20TKyik{F$z_3=77n9tTXZ#Hjri;)O!!ih+n zTCAcC-wLTzibkhhI@A4HLR%|rEWH*APSd(uQzNeQGjssGTg(+ngfw5 z=kqo72gqIV_fI7Whb(a7G8Ez`k3ba2ZnL&&Dj5e!B!Jr}!8eN_FmapKwu|kEhE4wG z&{%{am{?z3jpmUDD@b-c8_@%r+0xH&x@UreW$%d6{~>&eO0~&Ym)<&@esBl#>*X5vZk|pL@4J)f(dKM(u?Ai-uRhvu`$wmnpW~l!ScZ^@!UpwG z_x<(Rhsp)0CLx-LR};RTflULt%RoaMi=6#vf12&fIWRKld3q68oa*lr>q z49*A2Hi>VGuWChy6kXK#wrB2{X2%PBwru(2v6TkdR_3h5fRZkvoK-Ps-DfLuoY6pS z4WV&CBi*WT9feX?qV%^MrOB;z7vGGAC6ubomG>bERL;RlX>B^aewuC0PET~xT?i^( z;B3Y|1b%cm~pqK$#qxu3eEr?3-Z&b()q&7MQ zLx_hO>?`%dNJc%aT3AHg=1T>o(kvvlmqccka8i``lxge@^5uMYG#XkxjZbjFEop?* zT?mPEf^XNH=w;FpVdBIbC8qh1gN&JYI&*F=^;+-72`J+R!F>{M{ziAf!C4dD#g2@gj&k^pIemQMT2P>?!1aYe2??7zONU zZBT|rLrevu7vzuwXYnABhQ-AM<9U7t9Fx9Ent~u)gOq_i804co7-~Ha+{A&H23ZFL zHZH}D_AE6Drt8)%V#LY3$PN0tF!%*a-f9fj%^9M+btAnW6{1Ci)+kgoe3b(A=C1|0 zx&?F69a=Bp+y?30vB;=U?hSukv|izu+8SJDWVp-7DQW(_+*-&089iYh+n72fpTVtm z;*H7U$-Qp+?wD!ph=qBz<8RS`KBjnK{w*w7IV4vMM;X?m;Zathmz8&A(PA@ih zxPb+~Zf>;(`b4f6;0w$O;$JMUYP{+TBUX*|Uqq|z{)>3ENql!8suJtDEONEJ`xQq{ zOV)f^)Nl2B{oePQ0P`zT5&1p<|Y{BV{QI`Otog^M_>VtpMdo@*??%1Xk0T8sa{I z-XzLUQ@d;EO*>GF7e72G7mm_K46kfK;RW9I`ud|G8)N0k!sfRG#dIU8lF(x2?Z$$! zp?_caU)l7TQd@4-NZZNa*x>RS7-s@`aj|xMadX@Hr2NMRP|1fra$3@oHQuI*R{m=R z=|)8$sxicPVVClbu?G99QwO!qE!|x(uZN?15K8>?hYQeel2fXO6n6ohyL~vwcJWwL9UU7DZsjFpfX2|9b zSwUZ(cfqd;IrGEue(=h9$T*{s(h597Ry^3JU^hbb>w{FqqAiVxJS5O&hVSy2q4a?v zbo{p4H($BdU34`&c%7{YCo+WpZ2w?|}*+w=XA zWm%*g0#7)Z+J2Dv1-@CIs9-PT^Mj#LuKnKMJRJsY*JE$%HToBnqFu`4bt* B#UlU! literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.6.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Event.list.6.json new file mode 100644 index 0000000000000000000000000000000000000000..6d922067afeefefcba3c644d2dd8510c1d8984a9 GIT binary patch literal 81 zcmb>CQczGzNi0cJvQmhS)dBG`5{u(=^NUh}B58>^#i?My{G_bZ Xv?vE8pkHRFpIVlhS5mCRRm%kck@XgY literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Invoice.create.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Invoice.create.1.json new file mode 100644 index 0000000000000000000000000000000000000000..de730d68ca733235af91f1f00ac655b782bdb5fc GIT binary patch literal 7107 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 Zv?vE8pkHRFpP5&dpP8Imti)Bz1pvYK7f%2H literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Invoice.list.2.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--Invoice.list.2.json new file mode 100644 index 0000000000000000000000000000000000000000..eeaeda09b8b8c6ec6c6181a8cf5cb203cd16d5f0 GIT binary patch literal 8567 zcmds6S#R4o5Pt8kFob>B1-9|+*aa55>85ScCa#m(Nt&V{Xoxx7@h|*}P1BD(hQz<&76gph2jf?L z*~2d3YwxgUg}8Bs=h3f?Q_nmoi!!`H)QUjbiybG^>b4#0`{3ipRBapFT2jIZf=bLu#7Zxj+7iEA1z_G0X0 z!7yzcF1am*7?{4}5R$CQNJ}wtAz(PQN=!?J(mo zB%Ucy6Gv8VR~&&hw4lT(Bf%7lBov3o5t^L$@FqN(&o;NGySKU$5`t%~kVJ_$a;Nh{ zV4Y*c;o5BMI)wePiyayqn7&(~O98p)7G)3$Y~L$8Em_UMt$I60KG|^aaAQ2Kt88qR z9-ls^s}@<{*kLHZTbDpKrqL-Jlt@K>915USuJQvyh#B`+;fTl#X;76H7L7#u!-k?p z^}DVqCJ2g2$x&pn;NV(AVsQsl;DvY=hwU6YDpRsLu<(5*AW^Vj5dw;+xAtlIzP29$ zFq2gjhY|ve1<{LUQ*Ank7+jigFf?fsiXB7k!}WCaaQx~5hyMNXUDO0uG4%0zd}qBL zZpPi)8SYxIF0WqOraRhPz6o|`uSXZt>7{*jb9*yBxf*}Gy294<^5p&XsD0^fg6Xx> zpWoOU+_~MJ9k1Hs>8suO?qb{Ov|3Yhcz*J7aQ=Jr8xAr!h-zn054GRloL^2eYu>!< zPyF5eGAAmpj{wC;@c;umx6uU;6WJ%H|3RIFQHY(Xg# zJ18LhJRWg*xaO^ZgjCR0h6S}5Y76X4i_WmPQBrDHs7ph|t5Sh(OaL_s6y|ZNP6|R< zjY=k9QT&aB(ZvX%9*1_K=5U&R4h5&lFdyAmX7@BphGHCGjkotm8? zMh2x6^dR)DSYnF*i6&?EWFFg-mUFxv9F=br67E#_rmVD=v+JDLcuhqaGh#0ah)Ln4 zlRbY@^B5&zgj6uEj7{)G}~rP6kF50>PC%Cg9p%P%DvJtOhADutpFY6j$;sZ&YWrG)}h^h`!pgYILwszS29 z9vB)`-SSs*<0X!$sbMK4lRD=mg!A8UQtk!B=m~S#uB99G2u?C%cSIgeR{GZZI#pML zjI6@^b581ZhV6cP*y|VZ1L+8#d6JX5oqq4I+w1jfli>+*QfD;kcUonZt;Zl-Sw4sa z?forIn)JGzjFZj@dFYa5UyC&8ua7kscygR{JbQRMx?N5$c6YdfMSdJk>h{Zzn0yh< zF%pPAc|Ow6|HKJN^XQ}K=y~tad{iY`Ukr3Yn#kry}}3AWk*t3mNMzyw`XKxzAbUCDfJs%w@BnfwQ7&g6$QPrEq(_kWqb$e2(-WyuKxDfRX}!U0fTh;c&#;8! zauP6QNXIg=eStg}RYcjxOZujT9te4~?0pPcbQeM$B`~8wY19ibgISve{ZBCr%^C=* zdBCTO2tLZ;8?oF&GUV_e+a&zBBq*Xg(N%)686Ur-xt3&IhVAt5J&`ez@fai+q@4!0 zbTMlV6|N>Cux~cRhoR6hg}GSL!jQeUst!grIh7DkfTMm#j5pjUpMq)lR8tD*P3@Up zfy-PRu0SC6l0ho;UU+YEnjW+X&0psf|Oww zj+FIL?_^~nfG|C-Vs2wPzPT!`@M2pyL8?#sMwPuKRibN55G8zHU(XQHT|ie|jTrJ_ qF&@a=hHw7}oW@_<(2CSUB;vrKFQ}%HWODV^p^9Fr=)-vS_1Rwu8rvWM literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--InvoiceItem.create.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--InvoiceItem.create.1.json new file mode 100644 index 0000000000000000000000000000000000000000..d92f7dd1ceef45c5949b39cb86c55aba7b95cba4 GIT binary patch literal 1111 zcmZuw%Wm5+5WMFr1f5!-1^iH6y%kLlZW_l)5j1U45EMnn8&jmhhhf*qzjv3SWx4fD znq3ZOW|!NOEX#Rqg7*1`?0qpF4BinWg0)hM4T5=aRh~fSO)V{fA~-g?DfrrcEFacC zCx5=QJr(y7>%;Rwad|#E9bd$gm2|>FhOkIdX6?YHf~>In<<~Apn&qk0bbTEX(KHdx_^tYVQ^>$e-7;<>^!$b zurFYHOWr6>p>&!W+lowtTzC|T4P69CSAtTQ8FOMGYbxfbg9Qyfs=^LoB~Bt~84pee zql+Nm#cLJ5^Y3Q;zB|=-FiYbsuz5Tk|k&!tVBCxgv!!W*Hi`l(bhp z>i-hQUJYWYc{JDS+)tv7DOqZ)sX{v;`ee7OALGUK)Aa1@`$W!ms;ngInA_p)p08Oc z7kmXKu6EF_kpkv`@g;r_(mIwlr6Y&OUxbf#j5WVMDAfJ1{*e=jpD88!8xC4r(<6%A>kBV#(D=V` z_#D%8xd9Q}NIDL5P`9KF7}TNvkxU|+K!u+)8%@$8o#aKRC)he}0s#eze4OQZL3m5v zNFFRWYidj@vLocekw{87TR?OrN{MRCthk3d1QXK1yh0aMQHC%;zDF(N;b=N7M#E@) z2z{{02!~xp5_VqyNfpIgm!mo|dXZ+!`oXWN&{hZ^6hnZ#}BN8d%i;* z57{f*fWQ@!eI36;FqUOCL57&;7fA20O%W~_R zv^yNm&MbFlS(b~+MicT+*}EZQ>@AgKbWRz$#bO?PnYTqBY^59(W%PVHxeyz7Q_MDx zUthj8m{J6V{lOKxxV{>GJRhZ#rSj529l#no{AS4BGxnjfCM+_e{$$9On6nbROk$d2 z?Vl(#kZswd`s*o`pd@AhKKTAHxw{{K{vn)Qjh{U{Y-cZ%+b@kiFl!5v*i6(q zoz$>al`W5Ns8kR*i$LJ+HNkB0tR%UVw;T{u)sWW8fu;L*=pDMJ4E-E?fMp+qBZ5N% z;SG7M1v%4cs$CMq;%bUF_r)YHa?fCW}HoQ;^u?Cy= zI~rdr33EXETK)jadERbHPfl>c__=izUqxX8gntGL+d8FVjp6}tn3j){I+)zOJ)ET1 z;U%i5gr;~CBtPtovre>6s@sdar(uxx*2kj%`1Zncni$Wk-W$T7z@@fw*)ylF2Fsn! Ke*J{X*R#KdFGcGB literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--PaymentIntent.create.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--PaymentIntent.create.1.json new file mode 100644 index 0000000000000000000000000000000000000000..49edb78f38755baeb88a2c32f7357c2242301ec5 GIT binary patch literal 6071 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 literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--SetupIntent.list.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--SetupIntent.list.1.json new file mode 100644 index 0000000000000000000000000000000000000000..d7ca834a50c9a3f49aeb8f662c572b0b6902a470 GIT binary patch literal 1116 zcmaJ=+iu%141Ld67>gU?e(GCQGg^ZQ3CJK1y-z#M$~{ z7$kLgcn-N46a|wIfW0ez(SK2F@|U7e*IEe(${I?VsP(Hh6@#rPBX|vu6`H^+3`;A0 zzfgb?sC5S64#6K|39S-TaH^G`KDT;0L*Qwhh9Uf~;ly{ex z8)VAOyWg!VUYUhP9zF8^xak9gn6Ox)Nc-q}x7qm=JuEV1Tb49{_vylO%S1RgWlQk9 hvU#%LV%{az`LC7V`Oc!#sprZ4@MM1}JR58We*qaHNV@<4 literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--SetupIntent.retrieve.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--SetupIntent.retrieve.1.json new file mode 100644 index 0000000000000000000000000000000000000000..ef19a1cf9f535cc2de8d992a0d6f0dc017ee650e GIT binary patch literal 930 zcmaJ=O>Y`85WVv&(4Kn;DJf}hQR$%{sDX;4N>y2dJqxB@d*iWz1o7WH_CmW$s$N$1 zc;1^gZ)W$se!qaaHd;c^&KB?bHX8FPhhuORN2RFYsX`k>g<<6swUZ=RiN<8G@Cel9 zkVYpUq4XFSR}cm*24BBVW}n9&rr_P6^yn21nJVavQ=uMhRnqA-D z>?TJ_y}`;UWU3MjVQ#YmtC+4$&+`F}0mt@-oMdsw<#IReM7LOTiyTP}u~2OTkEto< ztXSX*OetL1#&nk;Ve9IJ?)AoA&hG#ksxCxGXG^_|zF8Kd{V}q_mLM> zf=^RuZhSvlApRzvoX+VM!`As|laB?QHonO94*YFwJQEh4 zYD}_zv}Ez|XSSTQT^baTQ2b*=6d=TeEhtKfsCa`jED|iU2v?RYi75Szy+iLe8w4s< literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--checkout.Session.create.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--checkout.Session.create.1.json new file mode 100644 index 0000000000000000000000000000000000000000..f4caa1f07c8b5667396f6453ebb3c25b0ca9ee87 GIT binary patch literal 2382 zcmb_dTT?1W5PtVpSer_oqR36;R9PnhMa8HGI3SQpO${@>u!q^%WiAL>{`d6k1pzrv z$rDS@bobX^f8FzTbbRbl-+&^piUUPW5J~ULv9v<`o}390y^vT%VdRboi#X_=3t?oX zA=*w%WT-fB^x1Ar6k;Yu3|*na8zw>+An8N^M}tp=2A3YK+E8QjjA(jKU`+xc0y!m= za|K!>EFpmHgJ)DS5X346%bOV!e<>6+2!9r7gYKsWw9%lJpwOKBoHGtpzeZ1rehp44 z_1eWry;eNOFaNv_6Q9+6DA;(aD2Kw=kV;Dh5dj0Kf#6>{g%G5+S6;PA#Sgf641*K~FEJa|I%e>x+p4l*# zL>ly7`h!K=Dd+Y3K10AJ^Uu$9x8OD{+#qzBvG$Jd5O>36+l%2VuNNm9qy4 z)lM0oiX?gVjc$^$1x=_6gblBrRWItLdeWvuVII@O>720QvN5Vx&aXO+o8_V#nR(-Z zSMML17vp88-uB~4`7cICvkHfP1K-s|c15;3^@OLGuHDd*K$^Wt%TI9G%+Y_tdTvMbvxx5wqDRFG zUF+S@n~Ty9rZ(NPTY~#p;3#%GEsq+hi`2yQSE>EcjazBO;JoA*!s@1%F#>)ky)lDn(- zl*{DRJ)|%jkbFekGngx2s|1a&B-;#1lGN?D0xO_+3jckb{Ne|^$V-iwhTU1G6f4$a zzm{6<;&{Psc{pkgp2s())E*4VG+=SN)Gbb~t5d(3+$s<3vusVdY|-JM8$R@_ua9%V zJKsn3o_y?%&g#Q)C`$d|W2e2I%TbvxXlp#><;N*sy9jK^Uq;Qjq|e<8DjTc*a8(>- zvB#R0+VQ9rhq&Bd=#7^5JwBzSF5Yeo&?6k(6c_Xv^Or~RTe($cH;qcW*B9Q=`_aGd C?*r5T literal 0 HcmV?d00001 diff --git a/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--checkout.Session.list.1.json b/corporate/tests/stripe_fixtures/invoice_initial_remote_server_upgrade--checkout.Session.list.1.json new file mode 100644 index 0000000000000000000000000000000000000000..843a558b2e9ebafc70c97e1b91a390ef2a7cdee2 GIT binary patch literal 2772 zcmb_eT~jJK5PkPoShKbJw2FMG+$!ttf}-N8SGXu}YbzC!9>_J58S{at<$vGKz`*de zFS{=~q%)n<=bY}$$KL*az^SFdm;E33yubgE{>4=qTF?ZhiO|%FSm6%kr2Ksmmok1O ziH@V#hY5>0n2k+Q?35+O4Q*_x+!5X$b2g6fWJWBV;)@wDga(QZC2(8}sWgy5!icfd zx(vk}>1P%XhC)iAMuc*%!5D-rC9rM9F{&6y;META(fFi13npaHQF;mcnUWWL1!(_lA(F&?9KE&m%68mLXVE}k4= zRi$eAXo<>ckLGRTwD~&bRY;N9Vjt!V>Ptcal6%2^{GH31hAd1y-kk0;OQM+~v0jPS zek_tCC+`|4zhlRnX!OXCI3!+5RD@8*AhF&9^CTNqn!yK+@c^I6x7!Mx>OY6w>EQak zmD4RP6B`Ld+1f@~BErE^Aw3oOif2yUECnLm><=H)NP_+2-AR!gvN&2CjrA%TWd&s9 z;%YLE)s|)KGVFGUk}cHwm`G*vj@wBF$xyBMG94jc2=$54MAf6}X{}Vt5Cy4|17?Wt zDZ+}AdcRgVK7XiRPF~uveXif~>dkHAbTE0SwZf!Q{)^H6xWb`Zfn!}cDp&bPx#Vh5 zc_7pzMj6*w%a(UaA;knDoMQOi%3KL#%&6Q*7olMD(V0_BV+sqYlTdYsj+(VDyyq&#|+I2B(?tu?43Iee=VF2xYf) zeHO)G_`FV17Q^bsF<%`F0hO=x&1@dC*sMY^atQ`<1e*UJmUk>WEJ)W&} zM$9Qf0zGjVW6Q~ry|=gq0u_^NQNxQ98b{fZCEp1|xoGGcG=CZ71YNsqHdNBUVw`cn zNr-phI-RL@OBuYDf)ww2x9ywriwCOXm-C-yPZxSj#IpD|M%N;exDa$;=MjY{nc26 z;Tte*32eTzkH*zSd(6;SB}B21GZ?! z6o8+_1y(@w75@8Z`y~{-$V>HvM(y!KDbcLMel0ay#lZ`^;!(fx_%yh*rPkwPnF^M) zO6}tCqB;s2>8|plds592S54Y`Y)7}<>igZZ None: + self.login("hamlet") + hamlet = self.example_user("hamlet") + + realm_user_count = UserProfile.objects.filter( + realm=hamlet.realm, is_bot=False, is_active=True + ).count() + + self.add_mock_response() + with time_machine.travel(self.now, tick=False): + send_server_data_to_push_bouncer(consider_usage_statistics=False) + + self.execute_remote_billing_authentication_flow(hamlet) + with time_machine.travel(self.now, tick=False): + stripe_customer = self.add_card_and_upgrade( + tier=CustomerPlan.TIER_SELF_HOSTED_BASIC, schedule="monthly" + ) + + [invoice0] = iter(stripe.Invoice.list(customer=stripe_customer.id)) + + [invoice_item0, invoice_item1, invoice_item2] = iter(invoice0.lines) + invoice_item_params = { + "amount": -2000, + "description": "$20.00/month new customer discount", + "quantity": 1, + } + for key, value in invoice_item_params.items(): + self.assertEqual(invoice_item0[key], value) + + invoice_item_params = { + "amount": realm_user_count * 3.5 * 100, + "description": "Zulip Basic", + "quantity": realm_user_count, + } + for key, value in invoice_item_params.items(): + self.assertEqual(invoice_item1[key], value) + + invoice_item_params = { + "amount": -1 * (realm_user_count * 3.5 * 100 - 2000), + "description": "Payment (Card ending in 4242)", + "quantity": 1, + } + for key, value in invoice_item_params.items(): + self.assertEqual(invoice_item2[key], value) + @override_settings(PUSH_NOTIFICATION_BOUNCER_URL="https://push.zulip.org.example.com") class TestRemoteServerBillingFlow(StripeTestCase, RemoteServerTestCase): @@ -6673,3 +6720,48 @@ class TestRemoteServerBillingFlow(StripeTestCase, RemoteServerTestCase): result = self.client_post("/serverlogin/", payload, subdomain="selfhosting") self.assertEqual(result.status_code, 200) self.assert_in_success_response(["Your server registration has been deactivated."], result) + + @responses.activate + @mock_stripe() + def test_invoice_initial_remote_server_upgrade(self, *mocks: Mock) -> None: + self.login("hamlet") + hamlet = self.example_user("hamlet") + + server_user_count = UserProfile.objects.filter(is_bot=False, is_active=True).count() + + self.add_mock_response() + with time_machine.travel(self.now, tick=False): + send_server_data_to_push_bouncer(consider_usage_statistics=False) + + self.execute_remote_billing_authentication_flow(hamlet.delivery_email, hamlet.full_name) + with time_machine.travel(self.now, tick=False): + stripe_customer = self.add_card_and_upgrade( + tier=CustomerPlan.TIER_SELF_HOSTED_BASIC, schedule="monthly" + ) + + [invoice0] = iter(stripe.Invoice.list(customer=stripe_customer.id)) + + [invoice_item0, invoice_item1, invoice_item2] = iter(invoice0.lines) + invoice_item_params = { + "amount": -2000, + "description": "$20.00/month new customer discount", + "quantity": 1, + } + for key, value in invoice_item_params.items(): + self.assertEqual(invoice_item0[key], value) + + invoice_item_params = { + "amount": server_user_count * 3.5 * 100, + "description": "Zulip Basic", + "quantity": server_user_count, + } + for key, value in invoice_item_params.items(): + self.assertEqual(invoice_item1[key], value) + + invoice_item_params = { + "amount": -1 * (server_user_count * 3.5 * 100 - 2000), + "description": "Payment (Card ending in 4242)", + "quantity": 1, + } + for key, value in invoice_item_params.items(): + self.assertEqual(invoice_item2[key], value)