Merge pull request #534 from begriffs/unicode-schema
Regression test for read/write unicode table names
This commit is contained in:
@@ -146,6 +146,7 @@ Test-Suite spec
|
||||
, Feature.QueryLimitedSpec
|
||||
, Feature.RangeSpec
|
||||
, Feature.StructureSpec
|
||||
, Feature.UnicodeSpec
|
||||
, Paths_postgrest
|
||||
, PostgREST.App
|
||||
, PostgREST.Auth
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
module Feature.UnicodeSpec where
|
||||
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Wai
|
||||
import Test.Hspec.Wai.JSON
|
||||
import Network.Wai (Application)
|
||||
import Control.Monad (void)
|
||||
|
||||
spec :: SpecWith Application
|
||||
spec =
|
||||
describe "Reading and writing to unicode schema and table names" $
|
||||
it "Can read and write values" $ do
|
||||
get "/%D9%85%D9%88%D8%A7%D8%B1%D8%AF"
|
||||
`shouldRespondWith` "[]"
|
||||
|
||||
void $ post "/%D9%85%D9%88%D8%A7%D8%B1%D8%AF"
|
||||
[json| { "هویت": 1 } |]
|
||||
|
||||
get "/%D9%85%D9%88%D8%A7%D8%B1%D8%AF"
|
||||
`shouldRespondWith` [json| [{ "هویت": 1 }] |]
|
||||
@@ -18,6 +18,7 @@ import qualified Feature.QueryLimitedSpec
|
||||
import qualified Feature.QuerySpec
|
||||
import qualified Feature.RangeSpec
|
||||
import qualified Feature.StructureSpec
|
||||
import qualified Feature.UnicodeSpec
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
@@ -29,6 +30,7 @@ main = do
|
||||
let dbStructure = either (error.show) id result
|
||||
withApp = return $ postgrest testCfg dbStructure pool
|
||||
ltdApp = return $ postgrest testLtdRowsCfg dbStructure pool
|
||||
unicodeApp = return $ postgrest testUnicodeCfg dbStructure pool
|
||||
|
||||
hspec $ do
|
||||
mapM_ (beforeAll_ resetDb . before withApp) specs
|
||||
@@ -37,6 +39,10 @@ main = do
|
||||
beforeAll_ resetDb . before ltdApp $
|
||||
describe "Feature.QueryLimitedSpec" Feature.QueryLimitedSpec.spec
|
||||
|
||||
-- this test runs with a different schema
|
||||
beforeAll_ resetDb . before unicodeApp $
|
||||
describe "Feature.UnicodeSpec" Feature.UnicodeSpec.spec
|
||||
|
||||
where
|
||||
specs = map (uncurry describe) [
|
||||
("Feature.AuthSpec" , Feature.AuthSpec.spec)
|
||||
|
||||
@@ -21,6 +21,10 @@ testCfg :: AppConfig
|
||||
testCfg =
|
||||
AppConfig testDbConn "postgrest_test_anonymous" "test" 3000 (secret "safe") 10 Nothing True
|
||||
|
||||
testUnicodeCfg :: AppConfig
|
||||
testUnicodeCfg =
|
||||
AppConfig testDbConn "postgrest_test_anonymous" "تست" 3000 (secret "safe") 10 Nothing True
|
||||
|
||||
testLtdRowsCfg :: AppConfig
|
||||
testLtdRowsCfg =
|
||||
AppConfig testDbConn "postgrest_test_anonymous" "test" 3000 (secret "safe") 10 (Just 3) True
|
||||
|
||||
Vendored
+3
-1
@@ -2,10 +2,11 @@
|
||||
GRANT USAGE ON SCHEMA
|
||||
postgrest
|
||||
, test
|
||||
, "تست"
|
||||
TO postgrest_test_anonymous;
|
||||
|
||||
-- Schema test objects
|
||||
SET search_path = test, pg_catalog;
|
||||
SET search_path = test, "تست", pg_catalog;
|
||||
|
||||
GRANT ALL ON TABLE
|
||||
items
|
||||
@@ -36,6 +37,7 @@ GRANT ALL ON TABLE
|
||||
, "Escap3e;"
|
||||
, "ghostBusters"
|
||||
, "withUnique"
|
||||
, "موارد"
|
||||
TO postgrest_test_anonymous;
|
||||
|
||||
GRANT INSERT ON TABLE insertonly TO postgrest_test_anonymous;
|
||||
|
||||
Vendored
+15
-1
@@ -33,6 +33,13 @@ CREATE SCHEMA private;
|
||||
CREATE SCHEMA test;
|
||||
|
||||
|
||||
--
|
||||
-- Name: تست; Type: SCHEMA; Schema: -; Owner: -
|
||||
--
|
||||
|
||||
CREATE SCHEMA تست;
|
||||
|
||||
|
||||
--
|
||||
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
|
||||
--
|
||||
@@ -162,6 +169,14 @@ CREATE FUNCTION anti_id(test.items) RETURNS bigint
|
||||
AS $_$ SELECT $1.id * -1 $_$;
|
||||
|
||||
|
||||
|
||||
SET search_path = تست, pg_catalog;
|
||||
|
||||
CREATE TABLE موارد (
|
||||
هویت bigint NOT NULL
|
||||
);
|
||||
|
||||
|
||||
SET search_path = test, pg_catalog;
|
||||
|
||||
--
|
||||
@@ -985,7 +1000,6 @@ ALTER TABLE ONLY users_tasks
|
||||
ALTER TABLE ONLY users_tasks
|
||||
ADD CONSTRAINT users_tasks_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
|
||||
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
Reference in New Issue
Block a user