Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(browser): allow custom HTML path, respect plugins transformIndexHtml #6725

Merged
merged 10 commits into from
Oct 25, 2024

Conversation

sheremet-va
Copy link
Member

@sheremet-va sheremet-va commented Oct 16, 2024

Description

Closes #6394
Closes #6768

This PR adds an option to specify your own HTML file for the Browser Mode. Now Vitest also always calls transformIndexHtml plugin hook when serving the tester file.

export default defineConfig({
  test: {
    browser: {
      testerHtmlPath: './component-testing.html',
    },
  },
})

Since Browser Mode is experimental, this PR can be merged with fixes and doesn't need to follow semver.

TODO

  • Tests
    • Non-existing file path
    • Error during transformIndexHtml
    • Valid HTML
    • Valid custom transformIndexHtml hook

Copy link

netlify bot commented Oct 16, 2024

Deploy Preview for vitest-dev ready!

Name Link
🔨 Latest commit a5c5b04
🔍 Latest deploy log https://app.netlify.com/sites/vitest-dev/deploys/671b8b2c30cd5b0008260d95
😎 Deploy Preview https://deploy-preview-6725--vitest-dev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@sheremet-va sheremet-va changed the title feat(browser): allow custom HTML path feat(browser): allow custom HTML path, respect plugins transformIndexHtml Oct 16, 2024
Copy link
Contributor

@hi-ogawa hi-ogawa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!
I tested importmap repro from OP and it works. Can you add it to one of your tests?

code
// config
  plugins: [
    {
      name: 'test-import-map',
      transformIndexHtml() {
        return [
          {
            tag: 'script',
            injectTo: 'head-prepend',
            attrs: {
              type: 'importmap'
            },
            children: JSON.stringify({
              "imports": {
                "some-lib": "https://vitest.dev/some-lib"
              }
            })
          }
        ]
      }
    }
  ]

// test
test('importmap', () => {
  expect(import.meta.resolve('some-lib')).toMatchInlineSnapshot(`"https://vitest.dev/some-lib"`)
})

hi-ogawa
hi-ogawa previously approved these changes Oct 22, 2024
@sheremet-va sheremet-va merged commit 169028f into vitest-dev:main Oct 25, 2024
17 checks passed
@sheremet-va sheremet-va deleted the fix/use-transform-index-html branch October 25, 2024 12:38
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this pull request Oct 28, 2024
##### [v2.1.4](https://github.com/vitest-dev/vitest/releases/tag/v2.1.4)

#####    🚀 Features

-   **browser**: Allow custom HTML path, respect plugins `transformIndexHtml`  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6725 [<samp>(16902)</samp>](vitest-dev/vitest@169028f0)

#####    🐞 Bug Fixes

-   Don't normalize drive case letter in root  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6792 [<samp>(b28cd)</samp>](vitest-dev/vitest@b28cd2e3)
-   **browser**:
    -   Fix default browser port  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#6700 [<samp>(9c518)</samp>](vitest-dev/vitest@9c518c14)
    -   Optimize expect-type  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6713 [<samp>(07918)</samp>](vitest-dev/vitest@07918538)
    -   Don't polyfill process.env  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6718 [<samp>(da6d2)</samp>](vitest-dev/vitest@da6d2ea7)
    -   Increment browser port automatically if there are several projects with browser.enabled  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6717 [<samp>(a9397)</samp>](vitest-dev/vitest@a939779f)
    -   Cleanup keyboard state  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#6731 [<samp>(19278)</samp>](vitest-dev/vitest@19278f4c)
    -   Don't add `v=` queries to setup files imports  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6759 [<samp>(b8258)</samp>](vitest-dev/vitest@b82584c9)
    -   User event cleanup on retry  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#6764 [<samp>(bdd15)</samp>](vitest-dev/vitest@bdd15dd1)
    -   Ignore non mocked msw requests  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6770 [<samp>(9d9ba)</samp>](vitest-dev/vitest@9d9bad5b)
    -   Initiate MSW in the same frame as tests  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6772 [<samp>(2444f)</samp>](vitest-dev/vitest@2444ff22)
-   **deps**:
    -   Update dependency sirv to v3  -  in vitest-dev/vitest#6701 [<samp>(fde5d)</samp>](vitest-dev/vitest@fde5d509)
-   **expect**:
    -   Correct behavior of `toThrowError` with empty string parameter  -  by [@shulaoda](https://github.com/shulaoda) in vitest-dev/vitest#6710 [<samp>(a6129)</samp>](vitest-dev/vitest@a61293e9)
-   **mocker**:
    -   Remove spy from peer dependencies  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6777 [<samp>(3a8b5)</samp>](vitest-dev/vitest@3a8b56bf)
-   **vitest**:
    -   Clarify slowTestThreshold, print slow tests in non-TTY mode  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6715 [<samp>(2e6aa)</samp>](vitest-dev/vitest@2e6aa647)
    -   Print warnings form Vite plugins  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6724 [<samp>(121b1)</samp>](vitest-dev/vitest@121b161f)
    -   Don't fail if the working directory starts with a lowercase drive letter  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6779 [<samp>(df6d7)</samp>](vitest-dev/vitest@df6d750b)
    -   Silence import analysis warning  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#6785 [<samp>(39041)</samp>](vitest-dev/vitest@39041ee5)
-   **vitest,runner**:
    -   Simplify `test.extend` type exports  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#6707 [<samp>(e5c38)</samp>](vitest-dev/vitest@e5c388f0)

#####    🏎 Performance

-   Use `hash` to replace `createHash`  -  by [@btea](https://github.com/btea) in vitest-dev/vitest#6703 [<samp>(5d07b)</samp>](vitest-dev/vitest@5d07bba6)

#####     [View changes on GitHub](vitest-dev/vitest@v2.1.3...v2.1.4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants