Skip to content

Commit f456654

Browse files
committed
more test cases for pretty print
1 parent bf4b4e8 commit f456654

File tree

5 files changed

+66
-1
lines changed

5 files changed

+66
-1
lines changed

__fixtures__/generated/generated.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@
110110
"pretty/constraints-12.sql": "ALTER TABLE products ADD CONSTRAINT fk_category \n FOREIGN KEY (category_id) \n REFERENCES categories(id) \n ON UPDATE CASCADE \n ON DELETE SET NULL \n DEFERRABLE INITIALLY DEFERRED",
111111
"pretty/constraints-13.sql": "ALTER TABLE products ADD CONSTRAINT check_price CHECK (price > 0)",
112112
"pretty/constraints-14.sql": "ALTER TABLE users ADD CONSTRAINT unique_email UNIQUE (email)",
113+
"pretty/constraints-15.sql": "ALTER TABLE school.enrollments\n ADD CONSTRAINT fk_student_course\n FOREIGN KEY (student_id, course_id)\n REFERENCES school.courses_students (student_id, course_id)",
114+
"pretty/constraints-16.sql": "ALTER TABLE school.enrollments\n ADD CONSTRAINT chk_enrollment_date\n CHECK (\n enrollment_date <= CURRENT_DATE\n AND status IN ('active', 'completed', 'withdrawn')\n )",
115+
"pretty/constraints-17.sql": "CREATE TABLE school.enrollments (\n student_id INT NOT NULL,\n course_id INT NOT NULL,\n enrollment_date DATE NOT NULL,\n status TEXT CHECK (\n status IN ('active', 'completed', 'withdrawn')\n ),\n CHECK (\n enrollment_date <= CURRENT_DATE\n )\n)",
113116
"pretty/casing-1.sql": "INSERT INTO users (name) VALUES ('John Doe')",
114117
"pretty/casing-2.sql": "INSERT INTO users (name) VALUES ('ADMINISTRATOR')",
115118
"pretty/casing-3.sql": "INSERT INTO users (name) VALUES ('lowercase')",

__fixtures__/kitchen-sink/pretty/constraints.sql

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,32 @@ ALTER TABLE products ADD CONSTRAINT check_price CHECK (price > 0);
7171
ALTER TABLE users ADD CONSTRAINT unique_email UNIQUE (email);
7272

7373

74+
-- 15
75+
76+
ALTER TABLE school.enrollments
77+
ADD CONSTRAINT fk_student_course
78+
FOREIGN KEY (student_id, course_id)
79+
REFERENCES school.courses_students (student_id, course_id);
80+
81+
-- 16
82+
83+
ALTER TABLE school.enrollments
84+
ADD CONSTRAINT chk_enrollment_date
85+
CHECK (
86+
enrollment_date <= CURRENT_DATE
87+
AND status IN ('active', 'completed', 'withdrawn')
88+
);
89+
90+
-- 17
91+
92+
CREATE TABLE school.enrollments (
93+
student_id INT NOT NULL,
94+
course_id INT NOT NULL,
95+
enrollment_date DATE NOT NULL,
96+
status TEXT CHECK (
97+
status IN ('active', 'completed', 'withdrawn')
98+
),
99+
CHECK (
100+
enrollment_date <= CURRENT_DATE
101+
)
102+
);

packages/deparser/__tests__/kitchen-sink/pretty-constraints.test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ it('pretty-constraints', async () => {
1717
"pretty/constraints-11.sql",
1818
"pretty/constraints-12.sql",
1919
"pretty/constraints-13.sql",
20-
"pretty/constraints-14.sql"
20+
"pretty/constraints-14.sql",
21+
"pretty/constraints-15.sql",
22+
"pretty/constraints-16.sql",
23+
"pretty/constraints-17.sql"
2124
]);
2225
});

packages/deparser/__tests__/pretty/__snapshots__/constraints-pretty.test.ts.snap

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ exports[`non-pretty: pretty/constraints-13.sql 1`] = `"ALTER TABLE products ADD
2828

2929
exports[`non-pretty: pretty/constraints-14.sql 1`] = `"ALTER TABLE users ADD CONSTRAINT unique_email UNIQUE (email)"`;
3030

31+
exports[`non-pretty: pretty/constraints-15.sql 1`] = `"ALTER TABLE school.enrollments ADD CONSTRAINT fk_student_course FOREIGN KEY (student_id, course_id) REFERENCES school.courses_students (student_id, course_id)"`;
32+
33+
exports[`non-pretty: pretty/constraints-16.sql 1`] = `"ALTER TABLE school.enrollments ADD CONSTRAINT chk_enrollment_date CHECK (enrollment_date <= CURRENT_DATE AND status IN ('active', 'completed', 'withdrawn'))"`;
34+
35+
exports[`non-pretty: pretty/constraints-17.sql 1`] = `"CREATE TABLE school.enrollments (student_id int NOT NULL, course_id int NOT NULL, enrollment_date date NOT NULL, status text CHECK (status IN ('active', 'completed', 'withdrawn')), CHECK (enrollment_date <= CURRENT_DATE))"`;
36+
3137
exports[`pretty: pretty/constraints-1.sql 1`] = `
3238
"ALTER TABLE public.users
3339
ADD CONSTRAINT users_pkey PRIMARY KEY (id)"
@@ -111,3 +117,24 @@ exports[`pretty: pretty/constraints-14.sql 1`] = `
111117
"ALTER TABLE users
112118
ADD CONSTRAINT unique_email UNIQUE (email)"
113119
`;
120+
121+
exports[`pretty: pretty/constraints-15.sql 1`] = `
122+
"ALTER TABLE school.enrollments
123+
ADD CONSTRAINT fk_student_course FOREIGN KEY (student_id, course_id) REFERENCES school.courses_students (student_id, course_id)"
124+
`;
125+
126+
exports[`pretty: pretty/constraints-16.sql 1`] = `
127+
"ALTER TABLE school.enrollments
128+
ADD CONSTRAINT chk_enrollment_date CHECK (enrollment_date <= CURRENT_DATE
129+
AND status IN ('active', 'completed', 'withdrawn'))"
130+
`;
131+
132+
exports[`pretty: pretty/constraints-17.sql 1`] = `
133+
"CREATE TABLE school.enrollments (
134+
student_id int NOT NULL,
135+
course_id int NOT NULL,
136+
enrollment_date date NOT NULL,
137+
status text CHECK (status IN ('active', 'completed', 'withdrawn')),
138+
CHECK (enrollment_date <= CURRENT_DATE)
139+
)"
140+
`;

packages/deparser/__tests__/pretty/constraints-pretty.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ const prettyTest = new PrettyTest([
1414
'pretty/constraints-12.sql',
1515
'pretty/constraints-13.sql',
1616
'pretty/constraints-14.sql',
17+
'pretty/constraints-15.sql',
18+
'pretty/constraints-16.sql',
19+
'pretty/constraints-17.sql',
1720
]);
1821

1922
prettyTest.generateTests();

0 commit comments

Comments
 (0)