Skip to content

๐Ÿค– Plug-and-play Astro component renderer for fast, zero-config testing in any DOM-like JS/TS environment. ๐Ÿฌ

License

Notifications You must be signed in to change notification settings

igorskyflyer/npm-astro-render-component

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

21 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Icon of Astro Render Component

Astro Render Component


๐Ÿค– Plug-and-play Astro component renderer for fast, zero-config testing in any DOM-like JS/TS environment. ๐Ÿฌ


๐Ÿ“ƒ Table of Contents


๐Ÿค– Features

  • ๐Ÿ”ง Server-side rendering of Astro components in non-Astro environments like Vitest or Node.js
  • ๐Ÿงช Test-friendly API for rendering .astro components with props, slots, and hydration strategies
  • ๐Ÿช„ Zero-config usageโ€”just import and render, no need for full Astro setup
  • ๐Ÿงฉ Supports static, lazy, and client-only hydration modes
  • ๐Ÿง  Typed API with JSDoc annotations for IntelliSense and DX-first workflows
  • ๐Ÿ•ธ๏ธ Compatible with Astro v5+, leveraging the experimental AstroContainer API
  • ๐Ÿš€ Ideal for unit and integration testing of UI components

๐Ÿ•ต๐Ÿผ Usage

Install the package using your favorite package manager:

npm install "@igor.dvlpr/astro-render-component"
# or
pnpm add "@igor.dvlpr/astro-render-component"
# or
yarn add "@igor.dvlpr/astro-render-component"

Bring your own testing framework, e.g. Vitest and your own DOM-like environment, e.g. Happy-Dom and start rendering your Astro components in order to test them.


๐Ÿ—’๏ธ Example

// @โ€‹vitest-environment happy-dom
import { renderAstroComponent } from '@igor.dvlpr/astro-render-component'
import MyComponent from '../components/MyComponent.astro'
import { expect } from 'vitest'

const fragment = await renderAstroComponent(MyComponent, { props: { title: 'Hello' } })
expect(fragment.querySelector('h1')?.textContent).toBe('Hello')

๐Ÿ“ Changelog

๐Ÿ“‘ The changelog is available here: CHANGELOG.md.


๐Ÿชช License

Licensed under the MIT license which is available here, MIT license.


๐Ÿ’– Support

I work hard for every project, including this one and your support means a lot to me!
Consider buying me a coffee. โ˜•

Donate to igorskyflyer

Thank you for supporting my efforts! ๐Ÿ™๐Ÿ˜Š

๐Ÿงฌ Related

@igor.dvlpr/astro-easynav-button

๐Ÿงญ Add an easy-to-use navigational button (jump to top/bottom) to your Astro site. ๐Ÿ”ผ


@igor.dvlpr/astro-post-excerpt

โญ An Astro component that renders post excerpts for your Astro blog - directly from your Markdown and MDX files. Astro v2+ collections are supported as well! ๐Ÿ’Ž


@igor.dvlpr/chars-in-string

๐Ÿช Provides ways of testing whether an array of chars is present inside a given String. โ˜„


@igor.dvlpr/magic-queryselector

๐Ÿช„ A TypeScript-types patch for querySelector/querySelectorAll, make them return types you expect them to! ๐Ÿ”ฎ


@igor.dvlpr/vscode-folderpicker

โœจ Provides a custom Folder Picker API + UI for Visual Studio Code. ๐ŸŽจ


๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป Author

Created by Igor Dimitrijeviฤ‡ (@igorskyflyer).

About

๐Ÿค– Plug-and-play Astro component renderer for fast, zero-config testing in any DOM-like JS/TS environment. ๐Ÿฌ

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project