meadow 2.0.20 → 2.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "meadow",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.21",
|
|
4
4
|
"description": "A data access library.",
|
|
5
5
|
"main": "source/Meadow.js",
|
|
6
6
|
"scripts": {
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
"docker-mssql-status": "./scripts/mssql-test-db.sh status",
|
|
23
23
|
"test-mssql": "./scripts/mssql-test-db.sh start && ./node_modules/mocha/bin/_mocha -u tdd --exit -R spec --grep Meadow-Provider-MSSQL",
|
|
24
24
|
"test-mssql-all": "./scripts/mssql-test-db.sh start && ./node_modules/mocha/bin/_mocha -u tdd --exit -R spec",
|
|
25
|
-
"test-all-providers": "./scripts/mysql-test-db.sh start && ./scripts/mssql-test-db.sh start && ./node_modules/mocha/bin/_mocha -u tdd --exit -R spec"
|
|
25
|
+
"test-all-providers": "./scripts/mysql-test-db.sh start && ./scripts/mssql-test-db.sh start && ./node_modules/mocha/bin/_mocha -u tdd --exit -R spec",
|
|
26
|
+
"docker-cleanup": "./scripts/meadow-test-cleanup.sh"
|
|
26
27
|
},
|
|
27
28
|
"mocha": {
|
|
28
29
|
"diff": true,
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
-- Bookstore Schema and Seed Data for Meadow Tests
|
|
2
|
+
-- Generated from meadow-connection-mysql/retold-harness/model/sql_create/BookStore-CreateDatabase.mysql.sql
|
|
3
|
+
-- and the first 20 rows of meadow-connection-mysql/retold-harness/data/books.csv
|
|
4
|
+
|
|
5
|
+
-- Schema
|
|
6
|
+
|
|
7
|
+
CREATE TABLE IF NOT EXISTS
|
|
8
|
+
Book
|
|
9
|
+
(
|
|
10
|
+
IDBook INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
11
|
+
GUIDBook CHAR(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
|
|
12
|
+
CreateDate DATETIME,
|
|
13
|
+
CreatingIDUser INT NOT NULL DEFAULT '0',
|
|
14
|
+
UpdateDate DATETIME,
|
|
15
|
+
UpdatingIDUser INT NOT NULL DEFAULT '0',
|
|
16
|
+
Deleted TINYINT NOT NULL DEFAULT '0',
|
|
17
|
+
DeleteDate DATETIME,
|
|
18
|
+
DeletingIDUser INT NOT NULL DEFAULT '0',
|
|
19
|
+
Title CHAR(200) NOT NULL DEFAULT '',
|
|
20
|
+
Type CHAR(32) NOT NULL DEFAULT '',
|
|
21
|
+
Genre CHAR(128) NOT NULL DEFAULT '',
|
|
22
|
+
ISBN CHAR(64) NOT NULL DEFAULT '',
|
|
23
|
+
Language CHAR(12) NOT NULL DEFAULT '',
|
|
24
|
+
ImageURL CHAR(254) NOT NULL DEFAULT '',
|
|
25
|
+
PublicationYear INT NOT NULL DEFAULT '0',
|
|
26
|
+
|
|
27
|
+
PRIMARY KEY (IDBook)
|
|
28
|
+
) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
29
|
+
|
|
30
|
+
CREATE TABLE IF NOT EXISTS
|
|
31
|
+
BookAuthorJoin
|
|
32
|
+
(
|
|
33
|
+
IDBookAuthorJoin INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
34
|
+
GUIDBookAuthorJoin CHAR(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
|
|
35
|
+
IDBook INT NOT NULL DEFAULT '0',
|
|
36
|
+
IDAuthor INT NOT NULL DEFAULT '0',
|
|
37
|
+
|
|
38
|
+
PRIMARY KEY (IDBookAuthorJoin)
|
|
39
|
+
) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
40
|
+
|
|
41
|
+
CREATE TABLE IF NOT EXISTS
|
|
42
|
+
Author
|
|
43
|
+
(
|
|
44
|
+
IDAuthor INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
45
|
+
GUIDAuthor CHAR(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
|
|
46
|
+
CreateDate DATETIME,
|
|
47
|
+
CreatingIDUser INT NOT NULL DEFAULT '0',
|
|
48
|
+
UpdateDate DATETIME,
|
|
49
|
+
UpdatingIDUser INT NOT NULL DEFAULT '0',
|
|
50
|
+
Deleted TINYINT NOT NULL DEFAULT '0',
|
|
51
|
+
DeleteDate DATETIME,
|
|
52
|
+
DeletingIDUser INT NOT NULL DEFAULT '0',
|
|
53
|
+
Name CHAR(200) NOT NULL DEFAULT '',
|
|
54
|
+
|
|
55
|
+
PRIMARY KEY (IDAuthor)
|
|
56
|
+
) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
57
|
+
|
|
58
|
+
CREATE TABLE IF NOT EXISTS
|
|
59
|
+
BookPrice
|
|
60
|
+
(
|
|
61
|
+
IDBookPrice INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
62
|
+
GUIDBookPrice CHAR(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
|
|
63
|
+
CreateDate DATETIME,
|
|
64
|
+
CreatingIDUser INT NOT NULL DEFAULT '0',
|
|
65
|
+
UpdateDate DATETIME,
|
|
66
|
+
UpdatingIDUser INT NOT NULL DEFAULT '0',
|
|
67
|
+
Deleted TINYINT NOT NULL DEFAULT '0',
|
|
68
|
+
DeleteDate DATETIME,
|
|
69
|
+
DeletingIDUser INT NOT NULL DEFAULT '0',
|
|
70
|
+
Price DECIMAL(8,2),
|
|
71
|
+
StartDate DATETIME,
|
|
72
|
+
EndDate DATETIME,
|
|
73
|
+
Discountable TINYINT NOT NULL DEFAULT '0',
|
|
74
|
+
CouponCode CHAR(16) NOT NULL DEFAULT '',
|
|
75
|
+
IDBook INT NOT NULL DEFAULT '0',
|
|
76
|
+
|
|
77
|
+
PRIMARY KEY (IDBookPrice)
|
|
78
|
+
) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
79
|
+
|
|
80
|
+
CREATE TABLE IF NOT EXISTS
|
|
81
|
+
Review
|
|
82
|
+
(
|
|
83
|
+
IDReviews INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
84
|
+
GUIDReviews CHAR(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
|
|
85
|
+
CreateDate DATETIME,
|
|
86
|
+
CreatingIDUser INT NOT NULL DEFAULT '0',
|
|
87
|
+
UpdateDate DATETIME,
|
|
88
|
+
UpdatingIDUser INT NOT NULL DEFAULT '0',
|
|
89
|
+
Deleted TINYINT NOT NULL DEFAULT '0',
|
|
90
|
+
DeleteDate DATETIME,
|
|
91
|
+
DeletingIDUser INT NOT NULL DEFAULT '0',
|
|
92
|
+
Text TEXT,
|
|
93
|
+
Rating INT NOT NULL DEFAULT '0',
|
|
94
|
+
IDBook INT NOT NULL DEFAULT '0',
|
|
95
|
+
|
|
96
|
+
PRIMARY KEY (IDReviews)
|
|
97
|
+
) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
98
|
+
|
|
99
|
+
-- Seed Data: First 20 books from books.csv
|
|
100
|
+
-- Inserted in CSV order so IDBook matches CSV row number
|
|
101
|
+
|
|
102
|
+
INSERT INTO Book (Title, Type, Genre, ISBN, Language, ImageURL, PublicationYear, CreateDate, CreatingIDUser, UpdateDate, UpdatingIDUser) VALUES
|
|
103
|
+
('The Hunger Games', 'Paper', 'UNKNOWN', '439023483', 'eng', 'https://images.gr-assets.com/books/1447303603m/2767052.jpg', 2008, NOW(), 99999, NOW(), 99999),
|
|
104
|
+
('Harry Potter and the Philosopher''s Stone', 'Paper', 'UNKNOWN', '439554934', 'eng', 'https://images.gr-assets.com/books/1474154022m/3.jpg', 1997, NOW(), 99999, NOW(), 99999),
|
|
105
|
+
('Twilight', 'Paper', 'UNKNOWN', '316015849', 'en-US', 'https://images.gr-assets.com/books/1361039443m/41865.jpg', 2005, NOW(), 99999, NOW(), 99999),
|
|
106
|
+
('To Kill a Mockingbird', 'Paper', 'UNKNOWN', '61120081', 'eng', 'https://images.gr-assets.com/books/1361975680m/2657.jpg', 1960, NOW(), 99999, NOW(), 99999),
|
|
107
|
+
('The Great Gatsby', 'Paper', 'UNKNOWN', '743273567', 'eng', 'https://images.gr-assets.com/books/1490528560m/4671.jpg', 1925, NOW(), 99999, NOW(), 99999),
|
|
108
|
+
('The Fault in Our Stars', 'Paper', 'UNKNOWN', '525478817', 'eng', 'https://images.gr-assets.com/books/1360206420m/11870085.jpg', 2012, NOW(), 99999, NOW(), 99999),
|
|
109
|
+
('The Hobbit or There and Back Again', 'Paper', 'UNKNOWN', '618260307', 'en-US', 'https://images.gr-assets.com/books/1372847500m/5907.jpg', 1937, NOW(), 99999, NOW(), 99999),
|
|
110
|
+
('The Catcher in the Rye', 'Paper', 'UNKNOWN', '316769177', 'eng', 'https://images.gr-assets.com/books/1398034300m/5107.jpg', 1951, NOW(), 99999, NOW(), 99999),
|
|
111
|
+
('Angels & Demons', 'Paper', 'UNKNOWN', '1416524797', 'en-CA', 'https://images.gr-assets.com/books/1303390735m/960.jpg', 2000, NOW(), 99999, NOW(), 99999),
|
|
112
|
+
('Pride and Prejudice', 'Paper', 'UNKNOWN', '679783261', 'eng', 'https://images.gr-assets.com/books/1320399351m/1885.jpg', 1813, NOW(), 99999, NOW(), 99999),
|
|
113
|
+
('The Kite Runner', 'Paper', 'UNKNOWN', '1594480001', 'eng', 'https://images.gr-assets.com/books/1484565687m/77203.jpg', 2003, NOW(), 99999, NOW(), 99999),
|
|
114
|
+
('Divergent', 'Paper', 'UNKNOWN', '62024035', 'eng', 'https://images.gr-assets.com/books/1328559506m/13335037.jpg', 2011, NOW(), 99999, NOW(), 99999),
|
|
115
|
+
('Nineteen Eighty-Four', 'Paper', 'UNKNOWN', '451524934', 'eng', 'https://images.gr-assets.com/books/1348990566m/5470.jpg', 1949, NOW(), 99999, NOW(), 99999),
|
|
116
|
+
('Animal Farm: A Fairy Story', 'Paper', 'UNKNOWN', '452284244', 'eng', 'https://images.gr-assets.com/books/1424037542m/7613.jpg', 1945, NOW(), 99999, NOW(), 99999),
|
|
117
|
+
('Het Achterhuis: Dagboekbrieven 14 juni 1942 - 1 augustus 1944', 'Paper', 'UNKNOWN', '553296981', 'eng', 'https://images.gr-assets.com/books/1358276407m/48855.jpg', 1947, NOW(), 99999, NOW(), 99999),
|
|
118
|
+
('Män som hatar kvinnor', 'Paper', 'UNKNOWN', '307269752', 'eng', 'https://images.gr-assets.com/books/1327868566m/2429135.jpg', 2005, NOW(), 99999, NOW(), 99999),
|
|
119
|
+
('Catching Fire', 'Paper', 'UNKNOWN', '439023491', 'eng', 'https://images.gr-assets.com/books/1358273780m/6148028.jpg', 2009, NOW(), 99999, NOW(), 99999),
|
|
120
|
+
('Harry Potter and the Prisoner of Azkaban', 'Paper', 'UNKNOWN', '043965548X', 'eng', 'https://images.gr-assets.com/books/1499277281m/5.jpg', 1999, NOW(), 99999, NOW(), 99999),
|
|
121
|
+
('The Fellowship of the Ring', 'Paper', 'UNKNOWN', '618346252', 'eng', 'https://images.gr-assets.com/books/1298411339m/34.jpg', 1954, NOW(), 99999, NOW(), 99999),
|
|
122
|
+
('Mockingjay', 'Paper', 'UNKNOWN', '439023513', 'eng', 'https://images.gr-assets.com/books/1358275419m/7260188.jpg', 2010, NOW(), 99999, NOW(), 99999);
|
|
123
|
+
|
|
124
|
+
-- Seed Data: Authors for the first 20 books
|
|
125
|
+
|
|
126
|
+
INSERT INTO Author (Name, CreateDate, CreatingIDUser, UpdateDate, UpdatingIDUser) VALUES
|
|
127
|
+
('Suzanne Collins', NOW(), 99999, NOW(), 99999),
|
|
128
|
+
('J.K. Rowling', NOW(), 99999, NOW(), 99999),
|
|
129
|
+
('Mary GrandPré', NOW(), 99999, NOW(), 99999),
|
|
130
|
+
('Stephenie Meyer', NOW(), 99999, NOW(), 99999),
|
|
131
|
+
('Harper Lee', NOW(), 99999, NOW(), 99999),
|
|
132
|
+
('F. Scott Fitzgerald', NOW(), 99999, NOW(), 99999),
|
|
133
|
+
('John Green', NOW(), 99999, NOW(), 99999),
|
|
134
|
+
('J.R.R. Tolkien', NOW(), 99999, NOW(), 99999),
|
|
135
|
+
('J.D. Salinger', NOW(), 99999, NOW(), 99999),
|
|
136
|
+
('Dan Brown', NOW(), 99999, NOW(), 99999),
|
|
137
|
+
('Jane Austen', NOW(), 99999, NOW(), 99999),
|
|
138
|
+
('Khaled Hosseini', NOW(), 99999, NOW(), 99999),
|
|
139
|
+
('Veronica Roth', NOW(), 99999, NOW(), 99999),
|
|
140
|
+
('George Orwell', NOW(), 99999, NOW(), 99999),
|
|
141
|
+
('Erich Fromm', NOW(), 99999, NOW(), 99999),
|
|
142
|
+
('Anne Frank', NOW(), 99999, NOW(), 99999),
|
|
143
|
+
('Eleanor Roosevelt', NOW(), 99999, NOW(), 99999),
|
|
144
|
+
('B.M. Mooyaart-Doubleday', NOW(), 99999, NOW(), 99999),
|
|
145
|
+
('Stieg Larsson', NOW(), 99999, NOW(), 99999),
|
|
146
|
+
('Reg Keeland', NOW(), 99999, NOW(), 99999),
|
|
147
|
+
('Rufus Beck', NOW(), 99999, NOW(), 99999);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Meadow Test Database Cleanup Script
|
|
3
|
+
#
|
|
4
|
+
# Stops and removes both MySQL and MSSQL test containers.
|
|
5
|
+
#
|
|
6
|
+
# Usage:
|
|
7
|
+
# ./scripts/meadow-test-cleanup.sh
|
|
8
|
+
|
|
9
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
10
|
+
|
|
11
|
+
echo "Cleaning up meadow test database containers..."
|
|
12
|
+
echo ""
|
|
13
|
+
|
|
14
|
+
"${SCRIPT_DIR}/mysql-test-db.sh" stop
|
|
15
|
+
"${SCRIPT_DIR}/mssql-test-db.sh" stop
|
|
16
|
+
|
|
17
|
+
echo ""
|
|
18
|
+
echo "Cleanup complete."
|
package/scripts/mssql-test-db.sh
CHANGED
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
#
|
|
9
9
|
# The container settings match the test configuration in
|
|
10
10
|
# test/Meadow-Provider-MSSQL_tests.js:
|
|
11
|
-
# Host: 127.0.0.1, Port:
|
|
11
|
+
# Host: 127.0.0.1, Port: 31433, User: sa
|
|
12
12
|
# Password: 1234567890abc., Database: bookstore
|
|
13
13
|
|
|
14
14
|
CONTAINER_NAME="meadow-mssql-test"
|
|
15
15
|
SA_PASSWORD="1234567890abc."
|
|
16
16
|
MSSQL_DATABASE="bookstore"
|
|
17
|
-
MSSQL_PORT="
|
|
17
|
+
MSSQL_PORT="31433"
|
|
18
18
|
MSSQL_IMAGE="mcr.microsoft.com/mssql/server:2022-latest"
|
|
19
19
|
|
|
20
20
|
start_mssql() {
|
package/scripts/mysql-test-db.sh
CHANGED
|
@@ -2,21 +2,24 @@
|
|
|
2
2
|
# MySQL Test Database Management Script
|
|
3
3
|
#
|
|
4
4
|
# Usage:
|
|
5
|
-
# ./scripts/mysql-test-db.sh start - Start MySQL container and
|
|
5
|
+
# ./scripts/mysql-test-db.sh start - Start MySQL container, load schema and seed data
|
|
6
6
|
# ./scripts/mysql-test-db.sh stop - Stop and remove the container
|
|
7
7
|
# ./scripts/mysql-test-db.sh status - Check if the container is running
|
|
8
8
|
#
|
|
9
9
|
# The container settings match the test configuration in
|
|
10
|
-
# test/Meadow-Provider-MySQL_tests.js:
|
|
11
|
-
# Host: localhost, Port:
|
|
10
|
+
# test/Meadow-Provider-MySQL_tests.js and meadow-connection-mysql:
|
|
11
|
+
# Host: localhost, Port: 33306, User: root
|
|
12
12
|
# Password: 123456789, Database: bookstore
|
|
13
13
|
|
|
14
14
|
CONTAINER_NAME="meadow-mysql-test"
|
|
15
15
|
MYSQL_ROOT_PASSWORD="123456789"
|
|
16
16
|
MYSQL_DATABASE="bookstore"
|
|
17
|
-
MYSQL_PORT="
|
|
17
|
+
MYSQL_PORT="33306"
|
|
18
18
|
MYSQL_IMAGE="mysql:8.0"
|
|
19
19
|
|
|
20
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
21
|
+
SEED_SQL="${SCRIPT_DIR}/bookstore-seed.sql"
|
|
22
|
+
|
|
20
23
|
start_mysql() {
|
|
21
24
|
# Check if container already exists
|
|
22
25
|
if docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
|
|
@@ -58,6 +61,20 @@ start_mysql() {
|
|
|
58
61
|
sleep 2
|
|
59
62
|
done
|
|
60
63
|
|
|
64
|
+
# Load bookstore schema and seed data
|
|
65
|
+
if [ -f "${SEED_SQL}" ]; then
|
|
66
|
+
echo "Loading bookstore schema and seed data..."
|
|
67
|
+
docker cp "${SEED_SQL}" "${CONTAINER_NAME}:/tmp/bookstore-seed.sql"
|
|
68
|
+
docker exec "${CONTAINER_NAME}" mysql -u root -p"${MYSQL_ROOT_PASSWORD}" "${MYSQL_DATABASE}" -e "source /tmp/bookstore-seed.sql"
|
|
69
|
+
if [ $? -ne 0 ]; then
|
|
70
|
+
echo "WARNING: Failed to load seed data. Tests requiring pre-populated data may fail."
|
|
71
|
+
else
|
|
72
|
+
echo "Bookstore schema and seed data loaded successfully."
|
|
73
|
+
fi
|
|
74
|
+
else
|
|
75
|
+
echo "WARNING: Seed file not found at ${SEED_SQL}. Skipping schema/data loading."
|
|
76
|
+
fi
|
|
77
|
+
|
|
61
78
|
echo ""
|
|
62
79
|
echo "MySQL test database is ready!"
|
|
63
80
|
echo " Container: ${CONTAINER_NAME}"
|
|
@@ -21,7 +21,7 @@ var tmpFableSettings = (
|
|
|
21
21
|
{
|
|
22
22
|
// This is queued up for Travis defaults.
|
|
23
23
|
Server: "localhost",
|
|
24
|
-
Port:
|
|
24
|
+
Port: 33306,
|
|
25
25
|
User: "root",
|
|
26
26
|
Password: "123456789",
|
|
27
27
|
Database: "bookstore",
|
|
@@ -268,7 +268,7 @@ suite
|
|
|
268
268
|
{
|
|
269
269
|
// This is queued up for Travis defaults.
|
|
270
270
|
Server: "localhost",
|
|
271
|
-
Port:
|
|
271
|
+
Port: 33306,
|
|
272
272
|
User: "root",
|
|
273
273
|
Password: "123456789",
|
|
274
274
|
Database: "bookstore",
|