PHPackages                             numaxlab/testa - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. numaxlab/testa

ActiveLibrary[Testing &amp; Quality](/categories/testing)

numaxlab/testa
==============

1.0.0-beta.9(3mo ago)037[15 issues](https://github.com/numaxlab/testa/issues)MITPHPPHP ^8.4CI passing

Since Dec 5Pushed 1mo agoCompare

[ Source](https://github.com/numaxlab/testa)[ Packagist](https://packagist.org/packages/numaxlab/testa)[ RSS](/packages/numaxlab-testa/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (9)Dependencies (13)Versions (12)Used By (0)

Testa
=====

[](#testa)

[![Latest Version on Packagist](https://camo.githubusercontent.com/cf9c7f3ce05813049d5a0d7ce577e1a4b8824ea30edf983f134bcda8bdd1dae9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e756d61786c61622f74657374612e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/numaxlab/testa)[![Total Downloads](https://camo.githubusercontent.com/3e760d26f7b13cd15216862eb6c08276832eb0b2fda8508780d371fcedf7f533/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6e756d61786c61622f74657374612e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/numaxlab/testa)

Testa is a Galician term used in printing and binding referring to the top edge of a book.

It is also a comprehensive Laravel package that extends the [Lunar](https://lunarphp.io/) e-commerce platform. Testa offers an opinionated, feature-rich solution specifically designed for building advanced, content-driven online stores for bookshops.

This package is tailored for bookshops that utilize [Geslib](https://editorial.trevenque.es/productos/geslib/) as their primary management system. It relies on the [numaxlab/lunar-geslib](https://github.com/numaxlab/lunar-geslib) package for the core Geslib integration and complements it by providing a ready-to-use storefront implementation.

Furthermore, Testa expands Lunar's capabilities by integrating a full-featured educational platform, a membership system, news and events management, and other key tools.

Testa was designed in a collaboration between [Traficantes de Sueños](https://traficantes.net), [Katakrak](https://katakrak.net)and [NUMAX](https://numax.org).

Features
--------

[](#features)

- **Content Management**: Create and manage static pages, promotional banners, and image slides.
- **Education Platform**:
    - Manage courses, modules, and topics.
    - Dedicated "Course" product type in Lunar.
- **Media Library**:
    - Upload and manage Audio, Video, and Document files.
    - Control media visibility (e.g., public, members-only).
- **Membership System**:
    - Define membership tiers and plans.
    - Manage subscriptions and member-exclusive benefits.
- **News &amp; Events**:
    - Publish articles.
    - Create and manage events with types and venues.
- **Editorial Area**: Manage reviews and special "editorial" collections.
- **Donation System**: Includes a pre-configured, flexible "Donation" product type.
- **Lunar &amp; Filament Integration**:
    - Extends core Lunar models like `Product` and `Customer`.
    - Extends the Filament admin panel for `Product` and `Customer` resources.
- Provides a rich set of Livewire and Blade components for the storefront.

Requirements
------------

[](#requirements)

- PHP ^8.4
- Laravel 12
- [LunarPHP](https://lunarphp.io/docs/core/index.html)
- [Lunar Geslib](https://github.com/numaxlab/lunar-geslib)

Installation
------------

[](#installation)

After following the official Laravel [installation instructions](https://laravel.com/docs/installation) to create a new project, you can install this package via Composer:

```
composer require numaxlab/testa
```

The package service provider will be auto-discovered by Laravel.

1. **Add the Filament Plugins to the Lunar Panel in the register method of your `AppServiceProvider`**

    ```
    LunarPanel::panel(function ($panel) {
         return $panel
             ->plugins([
                 GeslibPlugin::make(),
                 TestaPlugin::make(),
                 ShippingPlugin::make(),
                 SpatieLaravelTranslatablePlugin::make()
                     ->defaultLocales(['es', 'en']), // Setup the languages you want to use
             ]);
    })->register();
    ```
2. **Run the Installer Commands**

    This is a **crucial step**. The installer commands will set up required Lunar attributes, collection groups, tags, and seed initial data needed for the package to function correctly.

    ```
    php artisan lunar:geslib:install
    php artisan lunar:testa:install
    ```

Configuration
-------------

[](#configuration)

Testing
-------

[](#testing)

The package uses Pest for testing. You can run the tests using the following command:

```
composer test
```

Or

```
./vendor/bin/pest
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

Authors
-------

[](#authors)

- Adrián Pardellas Blunier ()
- X. Carlos Hidalgo ()

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance85

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 92.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Recently: every ~12 days

Total

9

Last Release

109d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1771ef754e6bc1a0cb9317f3eab3d6fc290200217cb2105b6bbe8f618ab926a3?d=identicon)[numaxlab](/maintainers/numaxlab)

---

Top Contributors

[![ablunier](https://avatars.githubusercontent.com/u/4113587?v=4)](https://github.com/ablunier "ablunier (171 commits)")[![equiscarlos](https://avatars.githubusercontent.com/u/48329429?v=4)](https://github.com/equiscarlos "equiscarlos (11 commits)")[![claude](https://avatars.githubusercontent.com/u/81847?v=4)](https://github.com/claude "claude (1 commits)")[![google-labs-jules[bot]](https://avatars.githubusercontent.com/in/842251?v=4)](https://github.com/google-labs-jules[bot] "google-labs-jules[bot] (1 commits)")

---

Tags

bookshope-commercegesliblunar

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/numaxlab-testa/health.svg)

```
[![Health](https://phpackages.com/badges/numaxlab-testa/health.svg)](https://phpackages.com/packages/numaxlab-testa)
```

###  Alternatives

[phpspec/prophecy

Highly opinionated mocking framework for PHP 5.3+

8.5k551.7M682](/packages/phpspec-prophecy)[brianium/paratest

Parallel testing for PHP

2.5k118.8M754](/packages/brianium-paratest)[beberlei/assert

Thin assertion library for input validation in business models.

2.4k96.9M570](/packages/beberlei-assert)[mikey179/vfsstream

Virtual file system to mock the real file system in unit tests.

1.4k108.0M2.7k](/packages/mikey179-vfsstream)[orchestra/testbench

Laravel Testing Helper for Packages Development

2.2k39.1M32.1k](/packages/orchestra-testbench)[phpspec/phpspec

Specification-oriented BDD framework for PHP 7.1+

1.9k36.7M3.1k](/packages/phpspec-phpspec)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
