|
| 1 | +import pytest |
1 | 2 | from pytest_mock import MockerFixture |
2 | 3 |
|
3 | 4 | from integrations.lead_tracking.hubspot.constants import ( |
4 | | - HUBSPOT_ACTIVE_SUBSCRIPTION_SELF_HOSTED, |
| 5 | + HUBSPOT_FORM_ID_SELF_HOSTED, |
5 | 6 | ) |
6 | 7 | from integrations.lead_tracking.hubspot.services import ( |
7 | 8 | create_self_hosted_onboarding_lead, |
8 | 9 | ) |
9 | 10 |
|
10 | 11 |
|
| 12 | +@pytest.mark.parametrize( |
| 13 | + "hubspot_cookie, expected_hubspot_cookie", [("", False), ("test_cookie", True)] |
| 14 | +) |
11 | 15 | def test_create_self_hosted_onboarding_lead_with_existing_company( |
12 | 16 | mocker: MockerFixture, |
| 17 | + hubspot_cookie: str, |
| 18 | + expected_hubspot_cookie: bool, |
13 | 19 | ) -> None: |
14 | 20 | # Given |
15 | 21 | mocked_hubspot_client = mocker.patch( |
16 | 22 | "integrations.lead_tracking.hubspot.services.HubspotClient", autospec=True |
17 | 23 | ) |
18 | 24 | email = "user@flagsmith.com" |
19 | | - organisation_name = "Flagsmith" |
20 | 25 | first_name = "user" |
21 | 26 | last_name = "test" |
22 | 27 |
|
23 | | - company_domain = "flagsmith.com" |
24 | | - company_id = "111" |
25 | | - |
26 | | - mocked_hubspot_client().get_company_by_domain.return_value = {"id": company_id} |
27 | | - |
28 | 28 | # When |
29 | | - create_self_hosted_onboarding_lead(email, first_name, last_name, organisation_name) |
| 29 | + create_self_hosted_onboarding_lead(email, first_name, last_name, hubspot_cookie) |
30 | 30 |
|
31 | 31 | # Then |
32 | | - mocked_hubspot_client().get_company_by_domain.assert_called_once_with( |
33 | | - company_domain |
34 | | - ) |
35 | | - |
36 | | - mocked_hubspot_client().create_company.assert_not_called() |
37 | | - |
38 | | - mocked_hubspot_client().create_self_hosted_contact.assert_called_once_with( |
39 | | - email, first_name, last_name, company_id |
40 | | - ) |
| 32 | + mocked_hubspot_client().create_lead_form.assert_called_once() |
41 | 33 |
|
| 34 | + call_args = mocked_hubspot_client().create_lead_form.call_args |
| 35 | + user = call_args.kwargs["user"] |
| 36 | + form_id = call_args.kwargs["form_id"] |
42 | 37 |
|
43 | | -def test_create_self_hosted_onboarding_lead_with_new_company( |
44 | | - mocker: MockerFixture, |
45 | | -) -> None: |
46 | | - # Given |
47 | | - mocked_hubspot_client = mocker.patch( |
48 | | - "integrations.lead_tracking.hubspot.services.HubspotClient", autospec=True |
49 | | - ) |
50 | | - email = "user@flagsmith.com" |
51 | | - organisation_name = "Flagsmith" |
52 | | - first_name = "user" |
53 | | - last_name = "test" |
54 | | - |
55 | | - company_domain = "flagsmith.com" |
56 | | - company_id = "111" |
57 | | - |
58 | | - mocked_hubspot_client().get_company_by_domain.return_value = None |
59 | | - mocked_hubspot_client().create_company.return_value = {"id": company_id} |
60 | | - |
61 | | - # When |
62 | | - create_self_hosted_onboarding_lead(email, first_name, last_name, organisation_name) |
63 | | - |
64 | | - # Then |
65 | | - mocked_hubspot_client().get_company_by_domain.assert_called_once_with( |
66 | | - company_domain |
67 | | - ) |
68 | | - |
69 | | - mocked_hubspot_client().create_company.assert_called_once_with( |
70 | | - name=organisation_name, |
71 | | - domain=company_domain, |
72 | | - active_subscription=HUBSPOT_ACTIVE_SUBSCRIPTION_SELF_HOSTED, |
73 | | - ) |
74 | | - |
75 | | - mocked_hubspot_client().create_self_hosted_contact.assert_called_once_with( |
76 | | - email, first_name, last_name, company_id |
77 | | - ) |
| 38 | + assert user.email == email |
| 39 | + assert user.first_name == first_name |
| 40 | + assert user.last_name == last_name |
| 41 | + assert form_id == HUBSPOT_FORM_ID_SELF_HOSTED |
| 42 | + assert ("hubspot_cookie" in call_args.kwargs) is expected_hubspot_cookie |
0 commit comments