# Instructions

- Following Playwright test failed.
- Explain why, be concise, respect Playwright best practices.
- Provide a snippet of code with the fix, if possible.

# Test info

- Name: mfc-corporate-com.spec.ts >> content >> slider-slide2grid
- Location: visual/mfc-corporate-com.spec.ts:20:9

# Error details

```
Error: A snapshot doesn't exist at /Users/mfdrunner/builds/pDk_92X_S/0/mfc/corporate/typo3/playwright/visual/mfc-corporate-com.spec.ts-snapshots/content-slider-slide2grid-com-tablet-p-darwin.png, writing actual.
```

```
Error: A snapshot doesn't exist at /Users/mfdrunner/builds/pDk_92X_S/0/mfc/corporate/typo3/playwright/visual/mfc-corporate-com.spec.ts-snapshots/content-slider-slide2grid-dark-com-tablet-p-darwin.png, writing actual.
```

# Page snapshot

```yaml
- generic [ref=e2]:
  - link "Skip to content" [ref=e3] [cursor=pointer]:
    - /url: "#page-content"
  - banner [ref=e4]:
    - generic [ref=e5]:
      - link "Marketing Factory Digital GmbH" [ref=e6] [cursor=pointer]:
        - /url: /
        - img "Marketing Factory Digital GmbH" [ref=e7]
      - link "Contact form" [ref=e26] [cursor=pointer]:
        - /url: /forms/contact-form/
      - button "Navigation" [expanded] [ref=e27] [cursor=pointer]
  - navigation "Breadcrumb" [ref=e29]:
    - generic [ref=e30]:
      - paragraph [ref=e31]: "You are here:"
      - list [ref=e32]:
        - listitem [ref=e33]:
          - link "Homepage" [ref=e34] [cursor=pointer]:
            - /url: /
            - img [ref=e35]
        - listitem [ref=e37]:
          - text: /
          - link "Content elements" [ref=e38] [cursor=pointer]:
            - /url: /content-elements/
            - generic [ref=e39]: Content elements
        - listitem [ref=e40]:
          - text: /
          - generic [ref=e41]: Slider (slide2grid)
  - main [ref=e42]:
    - generic [ref=e46]:
      - heading "From our services." [level=2] [ref=e47]
      - generic [ref=e48]:
        - generic [ref=e49]: slide 1 to 3 of 5
        - generic [ref=e52]:
          - generic [ref=e53]:
            - img [ref=e55]
            - generic [ref=e57]:
              - heading "Seamless CMS Integration" [level=3] [ref=e58]
              - paragraph [ref=e59]:
                - text: Expand your online store with an informative 'Advice' section to create a brand experience for your customers. We generate synergies between the e-commerce system
                - link "Shopware" [ref=e60] [cursor=pointer]:
                  - /url: https://www.marketing-factory.com/technology/shopware/
                - text: and the enterprise CMS
                - link "TYPO3" [ref=e61] [cursor=pointer]:
                  - /url: https://www.marketing-factory.com/technology/typo3/
                - text: by creating an interface between them to positively shape your customers' image of the brand in the long term.
            - link "Find out more" [ref=e63] [cursor=pointer]:
              - /url: https://www.marketing-factory.com/services/programming-and-development/#c207
          - generic [ref=e64]:
            - img [ref=e66]
            - generic [ref=e69]:
              - heading "Design" [level=3] [ref=e70]
              - paragraph [ref=e71]: Over 25 years of experience as a full-service expert help us to design your website in an integrated and sustainable way, and to develop a tailor-made digital solution that enables you to ideally reach your target group and fulfil your (online) mission.
            - link "Find out more" [ref=e73] [cursor=pointer]:
              - /url: https://www.marketing-factory.com/services/consulting-analysis-and-strategy/#c271
          - generic [ref=e74]:
            - img [ref=e76]
            - generic [ref=e78]:
              - heading "Development and integration of interfaces" [level=3] [ref=e79]
              - paragraph [ref=e80]: Our many years of experience and expertise in interface development and integration enable us to network your existing internal and external systems to build a smooth-running IT architecture. The creation of a standardised data structure means that your system landscape can be scaled at any time and will continue to impress even when requirements change.
            - link "Find out more" [ref=e82] [cursor=pointer]:
              - /url: https://www.marketing-factory.com/services/programming-and-development/interface-development/
          - generic [ref=e83]:
            - img [ref=e85]
            - generic [ref=e91]:
              - heading [level=3] [ref=e92]: PIM integration
              - paragraph [ref=e93]: Would you like to populate your website, online shop, product catalogue or product configurator centrally and (partially) automatically with product information and media directly from your PIM system? We can support you in setting up a PIM system and will establish the appropriate interface between your sales and communication channels and your PIM.
            - link [ref=e95] [cursor=pointer]:
              - /url: https://www.marketing-factory.com/services/programming-and-development/pimerp-links/
              - text: Find out more
          - generic [ref=e96]:
            - img [ref=e98]
            - generic [ref=e103]:
              - heading [level=3] [ref=e104]: Website relaunch
              - paragraph [ref=e105]: "Initial concept, technical implementation, relaunch: Together with you, we will define the key objectives for your company, specify the technical and content requirements, and bring your ageing website up to date with the latest technology. With optimum security, reduced loading time and no ranking losses in search engines."
            - link [ref=e107] [cursor=pointer]:
              - /url: https://www.marketing-factory.com/services/consulting-analysis-and-strategy/
              - text: Find out more
  - contentinfo [ref=e108]:
    - generic [ref=e111]:
      - navigation [ref=e112]:
        - list [ref=e113]:
          - listitem [ref=e114]:
            - button "Cookie settings" [ref=e115] [cursor=pointer]
          - listitem [ref=e116]:
            - link "Data privacy policy" [ref=e117] [cursor=pointer]:
              - /url: https://www.marketing-factory.com/data-privacy-policy/
          - listitem [ref=e118]:
            - link "Legal notice" [ref=e119] [cursor=pointer]:
              - /url: https://www.marketing-factory.com/legal-notice/
      - generic [ref=e120]:
        - paragraph [ref=e121]: © Marketing Factory Digital GmbH
        - paragraph [ref=e122]:
          - text: Alternative text for images is partially
          - link "generated by AI" [ref=e123] [cursor=pointer]:
            - /url: https://www.marketing-factory.com/technology/typo3/our-typo3-extensions/ai-filemetadata/
    - generic [ref=e126]:
      - strong [ref=e127]: Picture Credits
      - list
```

# Test source

```ts
  1   | import { test, expect } from '@playwright/test';
  2   | import { setup, scrollToBottom, setDarkTheme, hideElements } from '../helpers/utils';
  3   | 
  4   | const PAGE_HEADER = ['.c-page-header'];
  5   | const snap = (name: string) => ({ name: `${name}.png`, fullPage: true } as const);
  6   | 
  7   | test.describe('content', () => {
  8   |     test('keyvisual', async ({ page }) => {
  9   |         await setup(page, '/content-elements/keyvisual/');
  10  |         await expect(page).toHaveScreenshot(snap('content-keyvisual'));
  11  |         await setDarkTheme(page);
  12  |         await expect(page).toHaveScreenshot(snap('content-keyvisual-dark'));
  13  |     });
  14  | 
  15  |     test('hero-image', async ({ page }) => {
  16  |         await setup(page, '/content-elements/hero-image/');
  17  |         await expect(page).toHaveScreenshot(snap('content-hero-image'));
  18  |     });
  19  | 
  20  |     test('slider-slide2grid', async ({ page }) => {
  21  |         await setup(page, '/content-elements/slider-slide2grid/');
  22  |         await expect(page).toHaveScreenshot(snap('content-slider-slide2grid'));
  23  |         await setDarkTheme(page);
> 24  |         await expect(page).toHaveScreenshot(snap('content-slider-slide2grid-dark'));
      |         ^ Error: A snapshot doesn't exist at /Users/mfdrunner/builds/pDk_92X_S/0/mfc/corporate/typo3/playwright/visual/mfc-corporate-com.spec.ts-snapshots/content-slider-slide2grid-dark-com-tablet-p-darwin.png, writing actual.
  25  |     });
  26  | 
  27  |     test('comparison-modul', async ({ page }) => {
  28  |         await setup(page, '/content-elements/comparison-module/');
  29  |         await expect(page).toHaveScreenshot(snap('content-comparison-modul'));
  30  |         await setDarkTheme(page);
  31  |         await expect(page).toHaveScreenshot(snap('content-comparison-modul-dark'));
  32  |     });
  33  | });
  34  | 
  35  | test.describe('page-types', () => {
  36  |     test('search', async ({ page }) => {
  37  |         await setup(page, '/page-types/search/?tx_solr%5Bq%5D=obermeyer');
  38  |         await expect(page).toHaveScreenshot(snap('pagetype-search'));
  39  |     });
  40  | 
  41  |     test('client-list', async ({ page }) => {
  42  |         await setup(page, '/page-types/customers-list-view/');
  43  |         await expect(page).toHaveScreenshot(snap('pagetype-client-list'));
  44  |     });
  45  | 
  46  |     test('client-pfm', async ({ page }) => {
  47  |         await setup(page, '/page-types/customers-list-view/pfm-medical-sg/');
  48  |         await expect(page).toHaveScreenshot(snap('pagetype-client-pfm'));
  49  |     });
  50  | });
  51  | 
  52  | test.describe('plugins', () => {
  53  |     test('project-list', async ({ page }) => {
  54  |         await setup(page, '/plugins/project-list/');
  55  |         await expect(page).toHaveScreenshot(snap('plugin-project-list'));
  56  |     });
  57  | 
  58  |     test('project-obermeyer-corporate', async ({ page }) => {
  59  |         await setup(page, '/page-types/customers-list-view/obermeyer-sg/launch-of-the-obermeyer-groups-new-corporate-website-sg/');
  60  |         await hideElements(page, PAGE_HEADER);
  61  |         await scrollToBottom(page);
  62  |         await expect(page).toHaveScreenshot(snap('plugin-project-obermeyer-corporate'));
  63  |     });
  64  | 
  65  |     test('picturecredits', async ({ page }) => {
  66  |         await setup(page, '/plugins/picturecredits/');
  67  |         await expect(page).toHaveScreenshot(snap('plugin-picturecredits'));
  68  |     });
  69  | });
  70  | 
  71  | test.describe('blog', () => {
  72  |     test('overview', async ({ page }) => {
  73  |         await setup(page, '/blog/');
  74  |         await expect(page).toHaveScreenshot(snap('blog-overview'));
  75  |     });
  76  | 
  77  |     test('post-menu-elements', async ({ page }) => {
  78  |         await setup(page, '/blog/with-menu-elements/');
  79  |         await expect(page).toHaveScreenshot(snap('blog-post-menu-elements'));
  80  |     });
  81  | 
  82  |     test('post-with-comments', async ({ page }) => {
  83  |         await setup(page, '/blog/with-comments/');
  84  |         await expect(page).toHaveScreenshot(snap('blog-post-with-comments'));
  85  |     });
  86  | 
  87  |     test('post-localized-featured-image', async ({ page }) => {
  88  |         await setup(page, '/blog/localized-featured-image/');
  89  |         await expect(page).toHaveScreenshot(snap('blog-post-localized-featured-image'));
  90  |     });
  91  | });
  92  | 
  93  | test.describe('forms', () => {
  94  |     test('contact', async ({ page }) => {
  95  |         await setup(page, '/forms/contact-form/');
  96  |         await expect(page).toHaveScreenshot(snap('forms-contact'));
  97  |         await setDarkTheme(page);
  98  |         await expect(page).toHaveScreenshot(snap('forms-contact-dark'));
  99  |     });
  100 | 
  101 |     test('footer', async ({ page }) => {
  102 |         await setup(page, '/forms/footer-form/');
  103 |         await expect(page).toHaveScreenshot(snap('forms-footer'));
  104 |     });
  105 | });
  106 | 
```