/
test.sh
executable file
·134 lines (123 loc) · 5.12 KB
/
test.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/bin/bash
# set -ex
#
# Test version command
#
VERSION=$(node ./build/index.js --version)
if [[ ${VERSION} != *"@prisma/client"* ]]; then
echo "prisma --version is broken"
exit 1
fi
#
# Test custom generator path
#
cd ./fixtures/custom\ generator
GENERATE_RESULT=$(node ../../build/index.js generate)
if [[ ${GENERATE_RESULT} != *"onGenerate"* ]]; then
echo "custom generators are broken"
echo $GENERATE_RESULT
exit 1
fi
cd ../..
#
# Test introspection output with warnings
#
cd fixtures/introspection-warnings
INTROSPECTION=$(node ../../build/index.js introspect --url=file:./warnings.db 2>&1)
if [[ ${INTROSPECTION} != *"column_name_that_becomes_empty_string"* ]]; then
echo "prisma introspect column_name_that_becomes_empty_string is broken"
echo $INTROSPECTION
exit 1
fi
if [[ ${INTROSPECTION} != *"no_unique_identifier"* ]]; then
echo "prisma introspect no_unique_identifier is broken"
exit 1
fi
if [[ ${INTROSPECTION} != *"unsupported_type"* ]]; then
echo "prisma introspect unsupported_type is broken"
exit 1
fi
cd ../../
#
# Test generate output command
#
cd fixtures/project/subdir
GENERATE=$(node ../../../build/index.js generate)
if [[ ${GENERATE} != *"Generated "* ]]; then
echo "prisma generate is broken"
exit 1
fi
GENERATE_DENYLIST=$(node ../../../build/index.js generate --schema=denylist.prisma 2>&1)
if [[ ${GENERATE_DENYLIST} != *"Error validating model \"public\""* ]]; then
echo "prisma generate denylist is broken"
exit 1
fi
#
# Test --schema from schema dir
#
# Relative path
GENERATE_RELATIVE_SCHEMA_PATH="./schema.prisma"
GENERATE_RELATIVE_SCHEMA=$(node ../../../build/index.js generate --schema=$GENERATE_RELATIVE_SCHEMA_PATH)
if [[ ${GENERATE_RELATIVE_SCHEMA} != *"Generated "* ]]; then
echo "prisma generate --schema=$GENERATE_RELATIVE_SCHEMA_PATH is broken"
exit 1
fi
# Same case but should fail!
GENERATE_RELATIVE_SCHEMA_INVALID_PATH="./invalid.prisma"
GENERATE_RELATIVE_SCHEMA_INVALID=$(node ../../../build/index.js generate --schema=$GENERATE_RELATIVE_SCHEMA_INVALID_PATH 2>&1 > /dev/null)
if [[ ${GENERATE_RELATIVE_SCHEMA_INVALID} != *"Provided --schema at $GENERATE_RELATIVE_SCHEMA_INVALID_PATH doesn't exist."* ]]; then
echo "prisma generate --schema=$GENERATE_RELATIVE_SCHEMA_INVALID_PATH is broken (should fail)"
exit 1
fi
# Absolute path
GENERATE_ABSOLUTE_SCHEMA_PATH="$(pwd)/schema.prisma"
GENERATE_ABSOLUTE_SCHEMA=$(node ../../../build/index.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_PATH)
if [[ ${GENERATE_ABSOLUTE_SCHEMA} != *"Generated "* ]]; then
echo "prisma generate --schema=$GENERATE_ABSOLUTE_SCHEMA_PATH is broken"
exit 1
fi
# Same case but should fail!
GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH="$(pwd)/invalid.prisma"
GENERATE_ABSOLUTE_SCHEMA_INVALID=$(node ../../../build/index.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH 2>&1 > /dev/null)
if [[ ${GENERATE_ABSOLUTE_SCHEMA_INVALID} != *"Provided --schema at $GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH doesn't exist"* ]]; then
echo "prisma generate --schema=$GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH is broken (should fail)"
exit 1
fi
cd ../../..
#
# Test generation in npm script
#
rm -rf fixtures/project/subdir/@prisma
cd fixtures/project/ && yarn postinstall
#
# Test --schema from parent dir
#
cd ../..
# Relative path
GENERATE_RELATIVE_SCHEMA_FROM_PARENT_PATH="./fixtures/project/subdir/schema.prisma"
GENERATE_RELATIVE_SCHEMA_FROM_PARENT=$(SQLITE_URL=file:dev.db node ./build/index.js generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_PATH)
if [[ ${GENERATE_RELATIVE_SCHEMA_FROM_PARENT} != *"Generated "* ]]; then
echo "prisma generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_PATH is broken"
exit 1
fi
# Same case but should fail!
GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH="./fixtures/project/subdir/invalid.prisma"
GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID=$(node ./build/index.js generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH 2>&1 > /dev/null)
if [[ ${GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID} != *"Provided --schema at $GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH doesn't exist."* ]]; then
echo "prisma generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH is broken (should fail)"
exit 1
fi
# Absolute path
GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_PATH="$(pwd)/fixtures/project/subdir/schema.prisma"
GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT=$(SQLITE_URL=file:dev.db node ./build/index.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_PATH)
if [[ ${GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT} != *"Generated "* ]]; then
echo "prisma generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_PATH is broken"
exit 1
fi
# Same case but should fail!
GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH="$(pwd)/fixtures/project/subdir/invalid.prisma"
GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID=$(node ./build/index.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH 2>&1 > /dev/null)
if [[ ${GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID} != *"Provided --schema at $GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH doesn't exist."* ]]; then
echo "prisma generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH is broken (should fail)"
exit 1
fi