Skip to content

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

@netlify
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)
spamshaker pushed a commit to spamshaker/vitest that referenced this pull request Jun 30, 2025
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