From f54ac76be0ae1ea3e4e9e6cb948729404c0d5c08 Mon Sep 17 00:00:00 2001 From: Kuba Orlik Date: Tue, 5 Aug 2025 13:02:47 +0200 Subject: [PATCH] Update simple-crud-ui. Add a small test to it --- package-lock.json | 452 +----------------- package.json | 2 +- .../routes/dev/simple-crud-test/index.page.ts | 66 +++ .../simple-crud.test.ts/test-1.png | Bin 0 -> 35120 bytes .../simple-crud.test.ts/test-2.png | Bin 0 -> 33720 bytes .../simple-crud.test.ts/test-3.png | Bin 0 -> 55059 bytes tests/simple-crud.test.ts | 15 + 7 files changed, 91 insertions(+), 444 deletions(-) create mode 100644 src/back/routes/dev/simple-crud-test/index.page.ts create mode 100644 tests/__screenshots/simple-crud.test.ts/test-1.png create mode 100644 tests/__screenshots/simple-crud.test.ts/test-2.png create mode 100644 tests/__screenshots/simple-crud.test.ts/test-3.png create mode 100644 tests/simple-crud.test.ts diff --git a/package-lock.json b/package-lock.json index b9cc42d..028955f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@hotwired/turbo": "^8.0.2", "@koa/router": "^12.0.1", "@sealcode/add-to-head": "^1.0.0", - "@sealcode/crud-ui": "^0.0.17", + "@sealcode/crud-ui": "^0.0.18", "@sealcode/file-manager": "^1.0.2", "@sealcode/jdd": "^0.8.0", "@sealcode/jdd-editor": "^0.2.0", @@ -1339,12 +1339,12 @@ } }, "node_modules/@sealcode/crud-ui": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/@sealcode/crud-ui/-/crud-ui-0.0.17.tgz", - "integrity": "sha512-SEkhzB1oFIaos5d3hWGSrZk8sk2gZYeWMT2BGr34DvJh2IK5d5FUUf/QuzLJqM1JgrKSD5IWXl9R/KPMQtRt7Q==", + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@sealcode/crud-ui/-/crud-ui-0.0.18.tgz", + "integrity": "sha512-brzQxDpqMe11C+d794izJabrSqxUGv5BzMKY3wMJiuHD1K0WJD09Vkg35GWwRD7RdfXFt7uncSswqyYMBlKDAg==", "dependencies": { "@koa/router": "^13.1.0", - "@sealcode/sealgen": "^0.17.4", + "@sealcode/sealgen": "^0.18.5", "@types/koa__router": "^12.0.4", "escape-goat": "^4.0.0", "qs": "^6.13.0", @@ -1365,249 +1365,6 @@ "node": ">= 18" } }, - "node_modules/@sealcode/crud-ui/node_modules/@sealcode/sealgen": { - "version": "0.17.35", - "resolved": "https://registry.npmjs.org/@sealcode/sealgen/-/sealgen-0.17.35.tgz", - "integrity": "sha512-gbh9r2KtZFMrzPuley1SSfRC4C+3gOGf7v1PewgaPFBZHsfP7D2Bsgs8Gp0kgf2eWGcBvm1RECLn82p5w67r6g==", - "dependencies": { - "@koa/router": "^12.0.1", - "@sealcode/file-manager": "^1.0.2", - "@sealcode/ts-predicates": "^0.4.3", - "chokidar": "^3.6.0", - "colord": "^2.9.3", - "deepmerge": "^4.3.1", - "esbuild": "^0.20.0", - "escape-goat": "^4.0.0", - "fonsta": "^1.1.1", - "google-fonts-helper": "^3.4.1", - "husky": "^9.1.7", - "is-what": "^4.1.16", - "js-convert-case": "^4.2.0", - "json5": "^2.2.3", - "locreq": "^3.0.0", - "md5": "^2.3.0", - "merge": "^2.1.1", - "prettier": "^2.7.1", - "prompts": "^2.4.2", - "recursive-readdir": "^2.2.3", - "tempfile": "^5.0.0", - "tempstream": "^0.4.6", - "tiny-glob": "^0.2.9", - "ws": "^8.16.0", - "yargs": "^17.6.2" - }, - "bin": { - "sealgen": "lib/cli.js" - }, - "peerDependencies": { - "koa": "^2.13.0", - "koa-responsive-image-router": "^0.2.24", - "sealious": "^0.20" - } - }, - "node_modules/@sealcode/crud-ui/node_modules/@sealcode/sealgen/node_modules/@koa/router": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.2.tgz", - "integrity": "sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==", - "dependencies": { - "debug": "^4.3.4", - "http-errors": "^2.0.0", - "koa-compose": "^4.1.0", - "methods": "^1.1.2", - "path-to-regexp": "^6.3.0" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@sealcode/crud-ui/node_modules/@sealcode/ts-predicates": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@sealcode/ts-predicates/-/ts-predicates-0.4.3.tgz", - "integrity": "sha512-UNSEacu7Ye8q0N8AJCJy37oJvv3w2OXKGkUnP7xO5lOY9DQviDPRDQhVaZdJ3/xMzXLm4UE3389ihctrPaov/A==" - }, - "node_modules/@sealcode/crud-ui/node_modules/@types/object-hash": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz", - "integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==", - "peer": true - }, - "node_modules/@sealcode/crud-ui/node_modules/@types/uuid": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", - "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", - "peer": true - }, - "node_modules/@sealcode/crud-ui/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@sealcode/crud-ui/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "peer": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/@sealcode/crud-ui/node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sealcode/crud-ui/node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "peer": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@sealcode/crud-ui/node_modules/parse-ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sealcode/crud-ui/node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/@sealcode/crud-ui/node_modules/pretty-ms": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", - "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "peer": true, - "dependencies": { - "parse-ms": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sealcode/crud-ui/node_modules/sealious": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/sealious/-/sealious-0.20.1.tgz", - "integrity": "sha512-DDzIDNYWtdSnZ5wqPdlIK/PKpkPER1lqoMgsxEPw0AjDZxYOLAl3Okil8z36T8nHsNPelmSntndgDfgads91xQ==", - "peer": true, - "dependencies": { - "@koa/router": "^12.0.1", - "@sealcode/file-manager": "^1.0.1", - "@sealcode/ts-predicates": "^0.4.3", - "@types/boom": "^7.3.0", - "@types/clone": "^0.1.30", - "@types/color": "^3.0.1", - "@types/color-hash": "^1.0.0", - "@types/escape-html": "^1.0.0", - "@types/koa": "^2.11.6", - "@types/koa-mount": "^4.0.0", - "@types/koa-qs": "^2.0.0", - "@types/koa-send": "^4.1.2", - "@types/koa-static": "^4.0.1", - "@types/mjml": "^4.0.4", - "@types/mongodb": "^3.5.20", - "@types/node": "^20.0", - "@types/nodemailer": "^6.4.0", - "@types/object-hash": "^1.3.3", - "@types/sanitize-html": "^2.11.0", - "@types/uuid": "^8.3.0", - "boom": "^7.3.0", - "chalk": "^4.1.0", - "clone": "^1.0.2", - "color": "latest", - "color-hash": "^1.0.3", - "commonmark": "^0.31.0", - "cron": "^2.1.0", - "csv-stringify": "^6.4.5", - "deepmerge": "^4.2.2", - "dot-prop": "^8.0.2", - "emittery": "0.8.1", - "escape-html": "^1.0.3", - "get-port": "^5.1.1", - "koa": "^2.13.0", - "koa-body": "^4.2.0", - "koa-mount": "^4.0.0", - "koa-qs": "^3.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "locreq": "^3.0.0", - "mjml": "^4.2.0", - "mongodb": "^6.5.0", - "nanoid": "^5.0.9", - "nodemailer": "^6.4.6", - "object-hash": "^2.0.3", - "pg": "^8.13.1", - "pretty-ms": "^7.0.0", - "qs": "^6.12.0", - "sanitize-html": "^1.13.0", - "typedoc": "^0.17.8", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=21.0" - } - }, - "node_modules/@sealcode/crud-ui/node_modules/sealious/node_modules/@koa/router": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.2.tgz", - "integrity": "sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==", - "peer": true, - "dependencies": { - "debug": "^4.3.4", - "http-errors": "^2.0.0", - "koa-compose": "^4.1.0", - "methods": "^1.1.2", - "path-to-regexp": "^6.3.0" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@sealcode/crud-ui/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "peer": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/@sealcode/file-manager": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@sealcode/file-manager/-/file-manager-1.0.2.tgz", @@ -16126,12 +15883,12 @@ } }, "@sealcode/crud-ui": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/@sealcode/crud-ui/-/crud-ui-0.0.17.tgz", - "integrity": "sha512-SEkhzB1oFIaos5d3hWGSrZk8sk2gZYeWMT2BGr34DvJh2IK5d5FUUf/QuzLJqM1JgrKSD5IWXl9R/KPMQtRt7Q==", + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@sealcode/crud-ui/-/crud-ui-0.0.18.tgz", + "integrity": "sha512-brzQxDpqMe11C+d794izJabrSqxUGv5BzMKY3wMJiuHD1K0WJD09Vkg35GWwRD7RdfXFt7uncSswqyYMBlKDAg==", "requires": { "@koa/router": "^13.1.0", - "@sealcode/sealgen": "^0.17.4", + "@sealcode/sealgen": "^0.18.5", "@types/koa__router": "^12.0.4", "escape-goat": "^4.0.0", "qs": "^6.13.0", @@ -16148,197 +15905,6 @@ "koa-compose": "^4.1.0", "path-to-regexp": "^6.3.0" } - }, - "@sealcode/sealgen": { - "version": "0.17.35", - "resolved": "https://registry.npmjs.org/@sealcode/sealgen/-/sealgen-0.17.35.tgz", - "integrity": "sha512-gbh9r2KtZFMrzPuley1SSfRC4C+3gOGf7v1PewgaPFBZHsfP7D2Bsgs8Gp0kgf2eWGcBvm1RECLn82p5w67r6g==", - "requires": { - "@koa/router": "^12.0.1", - "@sealcode/file-manager": "^1.0.2", - "@sealcode/ts-predicates": "^0.4.3", - "chokidar": "^3.6.0", - "colord": "^2.9.3", - "deepmerge": "^4.3.1", - "esbuild": "^0.20.0", - "escape-goat": "^4.0.0", - "fonsta": "^1.1.1", - "google-fonts-helper": "^3.4.1", - "husky": "^9.1.7", - "is-what": "^4.1.16", - "js-convert-case": "^4.2.0", - "json5": "^2.2.3", - "locreq": "^3.0.0", - "md5": "^2.3.0", - "merge": "^2.1.1", - "prettier": "^2.7.1", - "prompts": "^2.4.2", - "recursive-readdir": "^2.2.3", - "tempfile": "^5.0.0", - "tempstream": "^0.4.6", - "tiny-glob": "^0.2.9", - "ws": "^8.16.0", - "yargs": "^17.6.2" - }, - "dependencies": { - "@koa/router": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.2.tgz", - "integrity": "sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==", - "requires": { - "debug": "^4.3.4", - "http-errors": "^2.0.0", - "koa-compose": "^4.1.0", - "methods": "^1.1.2", - "path-to-regexp": "^6.3.0" - } - } - } - }, - "@sealcode/ts-predicates": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@sealcode/ts-predicates/-/ts-predicates-0.4.3.tgz", - "integrity": "sha512-UNSEacu7Ye8q0N8AJCJy37oJvv3w2OXKGkUnP7xO5lOY9DQviDPRDQhVaZdJ3/xMzXLm4UE3389ihctrPaov/A==" - }, - "@types/object-hash": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz", - "integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==", - "peer": true - }, - "@types/uuid": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", - "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", - "peer": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "peer": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "peer": true - }, - "get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "peer": true - }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "peer": true - }, - "parse-ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", - "peer": true - }, - "prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==" - }, - "pretty-ms": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", - "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "peer": true, - "requires": { - "parse-ms": "^2.1.0" - } - }, - "sealious": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/sealious/-/sealious-0.20.1.tgz", - "integrity": "sha512-DDzIDNYWtdSnZ5wqPdlIK/PKpkPER1lqoMgsxEPw0AjDZxYOLAl3Okil8z36T8nHsNPelmSntndgDfgads91xQ==", - "peer": true, - "requires": { - "@koa/router": "^12.0.1", - "@sealcode/file-manager": "^1.0.1", - "@sealcode/ts-predicates": "^0.4.3", - "@types/boom": "^7.3.0", - "@types/clone": "^0.1.30", - "@types/color": "^3.0.1", - "@types/color-hash": "^1.0.0", - "@types/escape-html": "^1.0.0", - "@types/koa": "^2.11.6", - "@types/koa-mount": "^4.0.0", - "@types/koa-qs": "^2.0.0", - "@types/koa-send": "^4.1.2", - "@types/koa-static": "^4.0.1", - "@types/mjml": "^4.0.4", - "@types/mongodb": "^3.5.20", - "@types/node": "^20.0", - "@types/nodemailer": "^6.4.0", - "@types/object-hash": "^1.3.3", - "@types/sanitize-html": "^2.11.0", - "@types/uuid": "^8.3.0", - "boom": "^7.3.0", - "chalk": "^4.1.0", - "clone": "^1.0.2", - "color": "latest", - "color-hash": "^1.0.3", - "commonmark": "^0.31.0", - "cron": "^2.1.0", - "csv-stringify": "^6.4.5", - "deepmerge": "^4.2.2", - "dot-prop": "^8.0.2", - "emittery": "0.8.1", - "escape-html": "^1.0.3", - "get-port": "^5.1.1", - "koa": "^2.13.0", - "koa-body": "^4.2.0", - "koa-mount": "^4.0.0", - "koa-qs": "^3.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "locreq": "^3.0.0", - "mjml": "^4.2.0", - "mongodb": "^6.5.0", - "nanoid": "^5.0.9", - "nodemailer": "^6.4.6", - "object-hash": "^2.0.3", - "pg": "^8.13.1", - "pretty-ms": "^7.0.0", - "qs": "^6.12.0", - "sanitize-html": "^1.13.0", - "typedoc": "^0.17.8", - "uuid": "^8.3.2" - }, - "dependencies": { - "@koa/router": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.2.tgz", - "integrity": "sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==", - "peer": true, - "requires": { - "debug": "^4.3.4", - "http-errors": "^2.0.0", - "koa-compose": "^4.1.0", - "methods": "^1.1.2", - "path-to-regexp": "^6.3.0" - } - } - } - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "peer": true } } }, diff --git a/package.json b/package.json index 3a093e7..732eda8 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "@hotwired/turbo": "^8.0.2", "@koa/router": "^12.0.1", "@sealcode/add-to-head": "^1.0.0", - "@sealcode/crud-ui": "^0.0.17", + "@sealcode/crud-ui": "^0.0.18", "@sealcode/file-manager": "^1.0.2", "@sealcode/jdd": "^0.8.0", "@sealcode/jdd-editor": "^0.2.0", diff --git a/src/back/routes/dev/simple-crud-test/index.page.ts b/src/back/routes/dev/simple-crud-test/index.page.ts new file mode 100644 index 0000000..1ef2e59 --- /dev/null +++ b/src/back/routes/dev/simple-crud-test/index.page.ts @@ -0,0 +1,66 @@ +import { CRUD } from "@sealcode/crud-ui"; +import type { CollectionItem } from "sealious"; +import type { ListFilterRender } from "@sealcode/sealgen"; +import { Controls, DefaultListFilters, Fields } from "@sealcode/sealgen"; +import { NavbarLinks } from "src/back/collections/collections.js"; +import html from "src/back/html.js"; + +export const actionName = "NavbarLinksCRUD"; + +const edit_fields = { + label: new Fields.CollectionField( + NavbarLinks.fields.label.required, + NavbarLinks.fields.label + ), + href: new Fields.CollectionField( + NavbarLinks.fields.href.required, + NavbarLinks.fields.href + ), +}; + +const edit_controls = [ + new Controls.SimpleInput(edit_fields.label, { label: "label" }), + new Controls.SimpleInput(edit_fields.href, { label: "href" }), +]; + +// eslint-disable-next-line @typescript-eslint/consistent-type-assertions +const fields_for_display = [ + { field: "label", label: "label" }, + { field: "href", label: "href" }, +] as { + field: keyof (typeof NavbarLinks)["fields"]; + label: string; + format?: ( + value: unknown, + item: CollectionItem + ) => string | Promise; +}[]; + +// eslint-disable-next-line @typescript-eslint/consistent-type-assertions +const fields_for_filters = [ + { field: "label", ...DefaultListFilters["text"] }, + { field: "href", ...DefaultListFilters["text"] }, +] as { + field: keyof (typeof NavbarLinks)["fields"]; + render?: ListFilterRender; + prepareValue?: (filter_value: unknown) => unknown; // set this function to change what filter value is passed to Sealious +}[]; + +export default new CRUD({ + collection: NavbarLinks, + nice_collection_name: "NavbarLinks", + fields_for_display, + fields_for_filters, + html, + list_title: "NavbarLinks list", + edit_title: "Edit", + edit_button_text: "Edit", + delete_button_text: "Delete", + back_to_list_button_text: "← Back to NavbarLinks list", + edit_fields, + edit_controls, + form_value_to_sealious_value: {}, + sealious_value_to_form_value: {}, + post_edit: async () => {}, + post_create: async () => {}, +}); diff --git a/tests/__screenshots/simple-crud.test.ts/test-1.png b/tests/__screenshots/simple-crud.test.ts/test-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7989b23440ff333e80d1f8ee5abb9d40f50e371e GIT binary patch literal 35120 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 R0hbmrc)I$ztaD0e0s!_l*N*@I literal 0 HcmV?d00001 diff --git a/tests/__screenshots/simple-crud.test.ts/test-2.png b/tests/__screenshots/simple-crud.test.ts/test-2.png new file mode 100644 index 0000000000000000000000000000000000000000..96a4823b4c6e81518864811d648f3f46244c6af7 GIT binary patch literal 33720 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 ocY^w({`>We?l0M=Er0)i0EZmjRsaA1 literal 0 HcmV?d00001 diff --git a/tests/__screenshots/simple-crud.test.ts/test-3.png b/tests/__screenshots/simple-crud.test.ts/test-3.png new file mode 100644 index 0000000000000000000000000000000000000000..f4a61745d1ef0f16728b3db6ee8634ea016261d2 GIT binary patch literal 55059 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 I6BdF024mXM2mk;8 literal 0 HcmV?d00001 diff --git a/tests/simple-crud.test.ts b/tests/simple-crud.test.ts new file mode 100644 index 0000000..ba1fda2 --- /dev/null +++ b/tests/simple-crud.test.ts @@ -0,0 +1,15 @@ +import { test, expect } from "./backend-fixture"; + +test("test", async ({ page, backendUrl }) => { + await page.goto(`${backendUrl}/dev/simple-crud-test/`); + await expect(page).toHaveScreenshot(); + await page.getByRole("link", { name: "Create" }).click(); + await expect(page).toHaveScreenshot(); + await page.getByRole("textbox", { name: "label" }).click(); + await page.getByRole("textbox", { name: "label" }).fill("navbar from simple crud"); + await page.getByRole("textbox", { name: "label" }).press("Tab"); + await page.getByRole("textbox", { name: "href" }).fill("/"); + await page.getByRole("button", { name: "Wyślij" }).click(); + await page.getByRole("link", { name: "navbar from simple crud" }).click(); + await expect(page).toHaveScreenshot(); +});