2021-11-17 10:53:32 -06:00
|
|
|
.PHONY: test
|
|
|
|
|
|
2023-04-03 12:23:01 +02:00
|
|
|
all: format check
|
2020-09-02 22:06:53 -03:00
|
|
|
|
2023-08-19 07:38:04 +02:00
|
|
|
format: prettier black ruff
|
2020-09-02 22:06:53 -03:00
|
|
|
|
2023-12-12 11:13:58 +01:00
|
|
|
check: mypy pyright checkblack checkruff checkprettier checkbundle
|
2020-08-30 23:19:43 -03:00
|
|
|
|
2024-04-19 13:22:06 +02:00
|
|
|
test: test-unit test-wallets test-api test-regtest
|
|
|
|
|
|
2023-02-20 11:40:10 +01:00
|
|
|
prettier:
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run ./node_modules/.bin/prettier --write .
|
2020-08-29 14:10:26 -03:00
|
|
|
|
2023-01-23 09:29:17 +00:00
|
|
|
pyright:
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run ./node_modules/.bin/pyright
|
2023-01-23 09:29:17 +00:00
|
|
|
|
2022-08-03 14:10:32 +02:00
|
|
|
mypy:
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run mypy
|
2020-08-30 23:19:43 -03:00
|
|
|
|
2023-08-19 07:38:04 +02:00
|
|
|
black:
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run black .
|
2022-07-16 14:10:43 +02:00
|
|
|
|
2023-08-19 07:38:04 +02:00
|
|
|
ruff:
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run ruff check . --fix
|
2023-08-19 07:38:04 +02:00
|
|
|
|
|
|
|
|
checkruff:
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run ruff check .
|
2023-01-20 10:43:16 +00:00
|
|
|
|
2023-02-20 11:40:10 +01:00
|
|
|
checkprettier:
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run ./node_modules/.bin/prettier --check .
|
2020-09-02 22:06:53 -03:00
|
|
|
|
2022-08-03 14:10:32 +02:00
|
|
|
checkblack:
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run black --check .
|
2020-09-13 21:31:05 -03:00
|
|
|
|
2023-09-25 12:06:25 +02:00
|
|
|
checkeditorconfig:
|
|
|
|
|
editorconfig-checker
|
|
|
|
|
|
2023-08-03 09:53:36 +02:00
|
|
|
dev:
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run lnbits --reload
|
2023-08-03 09:53:36 +02:00
|
|
|
|
2024-10-01 11:36:22 +02:00
|
|
|
docker:
|
|
|
|
|
docker build -t lnbits/lnbits .
|
|
|
|
|
|
2024-04-19 13:22:06 +02:00
|
|
|
test-wallets:
|
2024-07-31 11:41:19 +02:00
|
|
|
LNBITS_DATA_FOLDER="./tests/data" \
|
2022-07-16 14:10:43 +02:00
|
|
|
LNBITS_BACKEND_WALLET_CLASS="FakeWallet" \
|
2021-11-17 10:53:32 -06:00
|
|
|
PYTHONUNBUFFERED=1 \
|
2022-08-17 15:57:56 +02:00
|
|
|
DEBUG=true \
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run pytest tests/wallets
|
2022-07-16 14:10:43 +02:00
|
|
|
|
2024-04-19 13:22:06 +02:00
|
|
|
test-unit:
|
2024-07-31 11:41:19 +02:00
|
|
|
LNBITS_DATA_FOLDER="./tests/data" \
|
2024-04-19 13:22:06 +02:00
|
|
|
LNBITS_BACKEND_WALLET_CLASS="FakeWallet" \
|
|
|
|
|
PYTHONUNBUFFERED=1 \
|
|
|
|
|
DEBUG=true \
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run pytest tests/unit
|
2024-04-19 13:22:06 +02:00
|
|
|
|
|
|
|
|
test-api:
|
2024-07-31 11:41:19 +02:00
|
|
|
LNBITS_DATA_FOLDER="./tests/data" \
|
2024-04-19 13:22:06 +02:00
|
|
|
LNBITS_BACKEND_WALLET_CLASS="FakeWallet" \
|
|
|
|
|
PYTHONUNBUFFERED=1 \
|
|
|
|
|
DEBUG=true \
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run pytest tests/api
|
2024-04-19 13:22:06 +02:00
|
|
|
|
2026-07-24 10:56:01 +03:00
|
|
|
test-e2e:
|
|
|
|
|
npm exec playwright install chromium
|
|
|
|
|
npm run test:e2e
|
|
|
|
|
|
2024-04-19 13:22:06 +02:00
|
|
|
test-regtest:
|
2024-07-31 11:41:19 +02:00
|
|
|
LNBITS_DATA_FOLDER="./tests/data" \
|
2022-07-16 14:10:43 +02:00
|
|
|
PYTHONUNBUFFERED=1 \
|
2022-08-17 15:57:56 +02:00
|
|
|
DEBUG=true \
|
2026-03-31 09:48:43 +03:00
|
|
|
rm -rf ./tests/data \
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run pytest tests/regtest
|
2022-06-27 00:11:46 +02:00
|
|
|
|
2022-08-17 15:42:01 +02:00
|
|
|
test-migration:
|
2023-09-12 12:21:05 +02:00
|
|
|
LNBITS_ADMIN_UI=True \
|
2024-04-19 13:22:06 +02:00
|
|
|
make test-api
|
2022-08-17 15:42:01 +02:00
|
|
|
HOST=0.0.0.0 \
|
|
|
|
|
PORT=5002 \
|
2023-09-12 12:21:05 +02:00
|
|
|
LNBITS_DATA_FOLDER="./tests/data" \
|
2025-08-21 16:17:19 +02:00
|
|
|
timeout 5s uv run lnbits --host 0.0.0.0 --port 5002 || code=$?; if [[ $code -ne 124 && $code -ne 0 ]]; then exit $code; fi
|
2022-08-17 15:42:01 +02:00
|
|
|
HOST=0.0.0.0 \
|
|
|
|
|
PORT=5002 \
|
|
|
|
|
LNBITS_DATABASE_URL="postgres://lnbits:lnbits@localhost:5432/migration" \
|
2024-11-08 10:06:21 +02:00
|
|
|
LNBITS_ADMIN_UI=False \
|
2025-08-21 16:17:19 +02:00
|
|
|
timeout 5s uv run lnbits --host 0.0.0.0 --port 5002 || code=$?; if [[ $code -ne 124 && $code -ne 0 ]]; then exit $code; fi
|
2023-09-12 12:21:05 +02:00
|
|
|
LNBITS_DATA_FOLDER="./tests/data" \
|
2022-08-17 15:42:01 +02:00
|
|
|
LNBITS_DATABASE_URL="postgres://lnbits:lnbits@localhost:5432/migration" \
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run python tools/conv.py
|
2022-08-17 15:42:01 +02:00
|
|
|
|
|
|
|
|
migration:
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run python tools/conv.py
|
2022-08-17 15:42:01 +02:00
|
|
|
|
2023-07-19 13:28:27 +02:00
|
|
|
openapi:
|
2026-07-31 14:29:23 +01:00
|
|
|
@OPENAPI_SPEC_FILE=$$(mktemp); \
|
|
|
|
|
OPENAPI_DATA_DIR=$$(mktemp -d); \
|
2024-10-01 11:36:22 +02:00
|
|
|
LNBITS_ADMIN_UI=False \
|
2023-07-19 13:28:27 +02:00
|
|
|
LNBITS_BACKEND_WALLET_CLASS="FakeWallet" \
|
2026-07-31 14:29:23 +01:00
|
|
|
LNBITS_DATA_FOLDER="$$OPENAPI_DATA_DIR" \
|
|
|
|
|
LNBITS_EXTENSIONS_DEFAULT_INSTALL='[]' \
|
|
|
|
|
LNBITS_EXTENSIONS_DEACTIVATE_ALL=true \
|
2023-07-19 13:28:27 +02:00
|
|
|
PYTHONUNBUFFERED=1 \
|
2026-07-31 14:29:23 +01:00
|
|
|
DEBUG=false \
|
2023-07-19 13:28:27 +02:00
|
|
|
HOST=0.0.0.0 \
|
|
|
|
|
PORT=5003 \
|
2026-07-31 14:29:23 +01:00
|
|
|
uv run lnbits & \
|
|
|
|
|
OPENAPI_SERVER_PID=$$!; \
|
|
|
|
|
trap 'kill "$$OPENAPI_SERVER_PID" 2>/dev/null || true; wait "$$OPENAPI_SERVER_PID" 2>/dev/null || true; rm -f "$$OPENAPI_SPEC_FILE"; rm -rf "$$OPENAPI_DATA_DIR"' EXIT; \
|
|
|
|
|
OPENAPI_ATTEMPT=0; \
|
|
|
|
|
while [ "$$OPENAPI_ATTEMPT" -lt 60 ]; do \
|
|
|
|
|
if curl --fail --silent --max-time 2 --output "$$OPENAPI_SPEC_FILE" \
|
|
|
|
|
http://127.0.0.1:5003/openapi.json; then \
|
|
|
|
|
uv run openapi-spec-validator --errors=all "$$OPENAPI_SPEC_FILE"; \
|
|
|
|
|
exit $$?; \
|
|
|
|
|
fi; \
|
|
|
|
|
if ! kill -0 "$$OPENAPI_SERVER_PID" 2>/dev/null; then \
|
|
|
|
|
echo "LNbits exited before serving the OpenAPI schema." >&2; \
|
|
|
|
|
exit 1; \
|
|
|
|
|
fi; \
|
|
|
|
|
OPENAPI_ATTEMPT=$$((OPENAPI_ATTEMPT + 1)); \
|
|
|
|
|
sleep 1; \
|
|
|
|
|
done; \
|
|
|
|
|
echo "LNbits did not serve the OpenAPI schema within 60 seconds." >&2; \
|
|
|
|
|
exit 1
|
2023-07-19 13:28:27 +02:00
|
|
|
|
2022-06-27 00:11:46 +02:00
|
|
|
bak:
|
|
|
|
|
# LNBITS_DATABASE_URL=postgres://postgres:postgres@0.0.0.0:5432/postgres
|
2023-03-31 12:46:24 +02:00
|
|
|
#
|
|
|
|
|
|
2023-04-21 14:51:46 +02:00
|
|
|
sass:
|
|
|
|
|
npm run sass
|
|
|
|
|
|
2024-03-22 12:33:42 +01:00
|
|
|
bundle:
|
2023-03-31 12:46:24 +02:00
|
|
|
npm install
|
2024-09-24 11:06:27 +02:00
|
|
|
npm run bundle
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run ./node_modules/.bin/prettier -w ./lnbits/static/vendor.json
|
2023-12-19 11:22:05 +01:00
|
|
|
|
2023-11-28 10:39:21 +01:00
|
|
|
checkbundle:
|
|
|
|
|
cp lnbits/static/bundle.min.js lnbits/static/bundle.min.js.old
|
|
|
|
|
cp lnbits/static/bundle.min.css lnbits/static/bundle.min.css.old
|
2024-09-24 11:06:27 +02:00
|
|
|
cp lnbits/static/bundle-components.min.js lnbits/static/bundle-components.min.js.old
|
2024-03-22 12:33:42 +01:00
|
|
|
make bundle
|
2023-11-28 10:39:21 +01:00
|
|
|
diff -q lnbits/static/bundle.min.js lnbits/static/bundle.min.js.old || exit 1
|
|
|
|
|
diff -q lnbits/static/bundle.min.css lnbits/static/bundle.min.css.old || exit 1
|
2024-09-24 11:06:27 +02:00
|
|
|
diff -q lnbits/static/bundle-components.min.js lnbits/static/bundle-components.min.js.old || exit 1
|
2023-11-28 10:39:21 +01:00
|
|
|
@echo "Bundle is OK"
|
|
|
|
|
rm lnbits/static/bundle.min.js.old
|
|
|
|
|
rm lnbits/static/bundle.min.css.old
|
2024-09-24 11:06:27 +02:00
|
|
|
rm lnbits/static/bundle-components.min.js.old
|
2023-11-28 10:39:21 +01:00
|
|
|
|
2023-05-09 10:41:40 +02:00
|
|
|
install-pre-commit-hook:
|
|
|
|
|
@echo "Installing pre-commit hook to git"
|
2025-08-21 16:17:19 +02:00
|
|
|
@echo "Uninstall the hook with uv run pre-commit uninstall"
|
|
|
|
|
uv run pre-commit install
|
2023-05-09 10:41:40 +02:00
|
|
|
|
|
|
|
|
pre-commit:
|
2025-08-21 16:17:19 +02:00
|
|
|
uv run pre-commit run --all-files
|