Skip to content

Commit

Permalink
Merge pull request #1 from ubq-testing/development
Browse files Browse the repository at this point in the history
`Start/Stop` plugin
  • Loading branch information
gentlementlegen authored Jul 15, 2024
2 parents c410a1f + 3f44200 commit 9a7ab87
Show file tree
Hide file tree
Showing 59 changed files with 11,221 additions and 7,652 deletions.
4 changes: 2 additions & 2 deletions .cspell.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json",
"version": "0.2",
"ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log"],
"ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log", "./src/adapters/supabase/**/**.ts"],
"useGitignore": true,
"language": "en",
"words": ["dataurl", "devpool", "outdir", "servedir"],
"words": ["dataurl", "devpool", "outdir", "servedir", "Supabase", "supabase", "SUPABASE", "typebox", "ubiquibot", "signoff", "sonarjs", "mswjs"],
"dictionaries": ["typescript", "node", "software-terms"],
"import": ["@cspell/dict-typescript/cspell-ext.json", "@cspell/dict-node/cspell-ext.json", "@cspell/dict-software-terms"],
"ignoreRegExpList": ["[0-9a-fA-F]{6}"]
Expand Down
2 changes: 2 additions & 0 deletions .dev.vars.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SUPABASE_URL=
SUPABASE_KEY=
1 change: 0 additions & 1 deletion .env.example

This file was deleted.

10 changes: 10 additions & 0 deletions .github/cspell.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const { exec } = require("child_process");

exec('cspell "**/*"', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
if (stdout) console.log(`stdout: ${stdout}`);
if (stderr) console.error(`stderr: ${stderr}`);
});
4 changes: 2 additions & 2 deletions .github/knip.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ import type { KnipConfig } from "knip";
const config: KnipConfig = {
entry: ["build/index.ts"],
project: ["src/**/*.ts"],
ignore: ["src/types/config.ts", "**/__mocks__/**", "**/__fixtures__/**"],
ignore: ["src/types/config.ts", "**/__mocks__/**", "**/__fixtures__/**", "src/worker.ts"],
ignoreExportsUsedInFile: true,
// eslint can also be safely ignored as per the docs: https://knip.dev/guides/handling-issues#eslint--jest
ignoreDependencies: ["eslint-config-prettier", "eslint-plugin-prettier", "@types/jest", "@mswjs/data"],
ignoreDependencies: ["eslint-config-prettier", "eslint-plugin-prettier", "@types/jest"],
eslint: true,
};

Expand Down
33 changes: 0 additions & 33 deletions .github/workflows/build.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .github/workflows/cspell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ jobs:
with:
node-version: "20.10.0"

- name: Enable corepack
run: corepack enable

- name: Install cspell
run: yarn add cspell

Expand Down
35 changes: 0 additions & 35 deletions .github/workflows/cypress-testing.yml

This file was deleted.

26 changes: 0 additions & 26 deletions .github/workflows/deploy.yml

This file was deleted.

25 changes: 13 additions & 12 deletions .github/workflows/jest-testing.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
name: Run Jest testing suite
on:
workflow_dispatch:
pull_request:
types: [opened, synchronize]
workflow_run:
workflows: ["Knip"]
types:
- completed

env:
NODE_ENV: "test"
Expand All @@ -15,19 +17,18 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: "20.10.0"

- uses: actions/checkout@master
with:
fetch-depth: 0
- name: Build & Run test suite
run: |
yarn
yarn test | tee ./coverage.txt && exit ${PIPESTATUS[0]}
- name: Jest Coverage Comment

- name: Enable corepack
run: corepack enable

- name: Jest With Coverage Comment
# Ensures this step is run even on previous step failure (e.g. test failed)
if: always()
uses: MishaKav/jest-coverage-comment@main
uses: ArtiomTr/jest-coverage-report-action@v2
with:
coverage-summary-path: coverage/coverage-summary.json
junitxml-path: junit.xml
junitxml-title: JUnit
coverage-path: ./coverage.txt
package-manager: yarn
prnumber: ${{ github.event.pull_request.number || github.event.workflow_run.pull_requests[0].number }}
3 changes: 3 additions & 0 deletions .github/workflows/knip.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: 20.10.0

- name: Enable corepack
run: corepack enable

- name: Install toolchain
run: yarn install
Expand Down
32 changes: 32 additions & 0 deletions .github/workflows/worker-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Deploy

on:
push:
branches:
- main

jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy
steps:
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20.10.0"

- name: Enable corepack
run: corepack enable

- uses: actions/checkout@v4
- uses: cloudflare/wrangler-action@v3
with:
wranglerVersion: "3.57.0"
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
secrets: |
SUPABASE_URL
SUPABASE_KEY
env:
SUPABASE_URL: ${{ secrets.SUPABASE_URL }}
SUPABASE_KEY: ${{ secrets.SUPABASE_KEY }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@ node_modules
.pnp.cjs
.pnp.loader.mjs
.env
.env.dev
.dev.vars
static/dist
coverage
junit.xml
cypress/screenshots
script.ts
.wrangler
58 changes: 41 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,56 @@
# `@ubiquity/ts-template`
# `@ubiquibot/command-start-stop`

This template repository includes support for the following:
This plugin allows a hunter to begin a task as well as gracefully stop a task without incurring a negative impact on the hunter's XP or karma.

- TypeScript
- Environment Variables
- Conventional Commits
- Automatic deployment to Cloudflare Pages
## Usage

## Testing
### Start a task

### Cypress
To start a task, a hunter should use the `/start` command. This will assign them to the issue so long as the following is true:

To test with Cypress Studio UI, run
- Price labels are set on the issue
- The issue is not already assigned
- The hunter has not reached the maximum number of concurrent tasks
- The command is not disabled at the repository or organization level
- TODO: If the hunter meets the required XP requirements

```shell
yarn cy:open
```
### Stop a task

To stop a task, a hunter should use the `/stop` command. This will unassign them from the issue so long as the following is true:

- The hunter is assigned to the issue
- The command is not disabled at the repository or organization level
- The command is called on the issue, not the associated pull request

Otherwise to simply run the tests through the console, run
### [Configuration](./src/types/plugin-input.ts)

```shell
yarn cy:run
#### Note: The command name is `"start"` when configuring your `.ubiquibot-config.yml` file.

To configure your Ubiquibot to run this plugin, add the following to the `.ubiquibot-config.yml` file in your organization configuration repository.

```yml
- plugin: http://localhost:4000 # or the URL where the plugin is hosted
name: start-stop
id: start-stop-command
description: "Allows a user to start/stop a task without negative XP impact"
command: "\/start|\/stop"
example: "/start" # or "/stop"
with:
isEnabled: true
timers:
reviewDelayTolerance: 86000
taskStaleTimeoutDuration: 2580000
miscellaneous:
maxConcurrentTasks: 3
startRequiresWallet: true # default is true
```
# Testing
### Jest
To start Jest tests, run
To run the Jest test suite, run the following command:
```shell
```bash
yarn test
```
33 changes: 0 additions & 33 deletions build/esbuild-build.ts

This file was deleted.

18 changes: 0 additions & 18 deletions build/esbuild-server.ts

This file was deleted.

4 changes: 0 additions & 4 deletions build/index.ts

This file was deleted.

11 changes: 0 additions & 11 deletions cypress.config.ts

This file was deleted.

Loading

20 comments on commit 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

Coverage report

Caution

Test run failed

St.
Category Percentage Covered / Total
🟢 Statements 100% 0/0
🟢 Branches 100% 0/0
🟢 Functions 100% 0/0
🟢 Lines 100% 0/0

Test suite run failed

Failed tests: 0/0. Failed suites: 1/1.
  ● Test suite failed to run

    Supabase URL and Key are required

      22 |
      23 | if (!url || !key) {
    > 24 |   throw new Error("Supabase URL and Key are required");
         |         ^
      25 | }
      26 |
      27 | beforeAll(() => {

      at Object.<anonymous> (tests/main.test.ts:24:9)

Report generated by 🧪jest coverage report action from 9a7ab87

Please sign in to comment.