An open API service indexing awesome lists of open source software.

https://github.com/igorskyflyer/npm-astro-render-component

๐Ÿค– Plug-and-play Astro component renderer for fast, zero-config testing in any DOM-like JS/TS environment. ๐Ÿฌ
https://github.com/igorskyflyer/npm-astro-render-component

astro back-end component dom framework front-end happy-dom happydom igorskyflyer jsdom render test ui vdom

Last synced: 22 days ago
JSON representation

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

Awesome Lists containing this project

README

          


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](#-features)
- [Usage](#-usage)
- [Example](#๏ธ-example)
- [Changelog](#-changelog)
- [Support](#-support)
- [License](#-license)
- [Related](#-related)
- [Author](#-author)

---

## ๐Ÿค– 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](https://docs.astro.build/en/reference/container-reference/)
- ๐Ÿš€ Ideal for unit and integration testing of UI components

---

## ๐Ÿ•ต๐Ÿผ Usage

Install the package using your favorite package manager:

```bash
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](https://vitest.dev/) and your own DOM-like environment, e.g. [Happy-Dom](https://www.npmjs.com/package/happy-dom) and start rendering your Astro components in order to test them.

---

## ๐Ÿ—’๏ธ Example

```ts
// @โ€‹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](https://github.com/igorskyflyer/npm-astro-render-component/blob/main/CHANGELOG.md).

---

## ๐Ÿชช License

Licensed under the MIT license which is available here, [MIT license](https://github.com/igorskyflyer/npm-astro-render-component/blob/main/LICENSE.txt).

---

## ๐Ÿ’– 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](https://www.npmjs.com/package/@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](https://www.npmjs.com/package/@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](https://www.npmjs.com/package/@igor.dvlpr/chars-in-string)

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


[@igor.dvlpr/magic-queryselector](https://www.npmjs.com/package/@igor.dvlpr/magic-queryselector)

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


[@igor.dvlpr/vscode-folderpicker](https://www.npmjs.com/package/@igor.dvlpr/vscode-folderpicker)

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

---

## ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป Author
Created by **Igor Dimitrijeviฤ‡** ([*@igorskyflyer*](https://github.com/igorskyflyer/)).