MozillaFoundation / foundation.mozilla.org

Mozilla Foundation website
https://foundation.mozilla.org
Mozilla Public License 2.0
387 stars 153 forks source link

[Main Navigation Dropdown] Setup fake data generators #12131

Closed data-sync-user closed 2 months ago

data-sync-user commented 6 months ago

Setup fake data generators so that running inv setup creates a NavMenu and an accompanying navigation setting.

┆Issue is synchronized with this Jira Story

data-sync-user commented 6 months ago

➤ Jhonatan Lopes commented:

Pause this work until we have some templates to make it easier to verify that the fake data is working properly

data-sync-user commented 3 months ago

➤ Jhonatan Lopes commented:

For an example of how a NavMenu can be setup, please take a look at the tests in nav/tests/test_models.py and nav/tests/test_templatetags.py:

menu = nav_factories.NavMenuFactory(

First dropdown | First Column | First link (page A1)

        dropdowns__0__dropdown__columns__0__nav_items__0__link_to="page",
        dropdowns__0__dropdown__columns__0__nav_items__0__page=page_a1,
        # First dropdown | First Column | Second link (external)
        dropdowns__0__dropdown__columns__0__nav_items__1__external_url_link=True,
        # First dropdown | CTA Button link (page A2)
        dropdowns__0__dropdown__button__link_to="page",
        dropdowns__0__dropdown__button__page=page_a2,
        # Second dropdown | First Column | First link (page B1)
        dropdowns__1__dropdown__columns__0__nav_items__0__link_to="page",
        dropdowns__1__dropdown__columns__0__nav_items__0__page=page_b1,
        # Second dropdown | First Column | Second link (external)
        dropdowns__1__dropdown__columns__0__nav_items__1__external_url_link=True,
        # Second dropdown | Second Column | First link (page B2)
        dropdowns__1__dropdown__columns__1_nav_items__0__link_to="page",
        dropdowns__1__dropdown__columns__1__nav_items__0__page=page_b2,
        # Second dropdown | Second Column | Second link (external)
        dropdowns__1__dropdown__columns__1__nav_items__1__external_url_link=True,
        # Second dropdown | CTA Button link (page B3)
        dropdowns__1__dropdown__button__link_to="page",
        dropdowns__1__dropdown__button__page=page_b3,
        # Third dropdown | First Column | First link (page C)
        dropdowns__2__dropdown__featured_column__0__nav_items__0__link_to="page",
        dropdowns__2__dropdown__featured_column__0__nav_items__0__page=page_c,
        # Third dropdown | First Column | Second link (external)
        dropdowns__2__dropdown__featured_column__0__nav_items__1__external_url_link=True,
    )For the fake data generators, we want to make sure that we can mimic what we have in prod, i.e.: