From c605ecdf0c2ebe80e3f457de4e42ccecd7fb1e6e Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 19 Jun 2023 14:20:07 +0100 Subject: [PATCH] Test export with database --- .../postgres.integration.spec.ts | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/qa-core/src/integrations/external-schema/postgres.integration.spec.ts b/qa-core/src/integrations/external-schema/postgres.integration.spec.ts index dcfab9a499..4d4f8d9c24 100644 --- a/qa-core/src/integrations/external-schema/postgres.integration.spec.ts +++ b/qa-core/src/integrations/external-schema/postgres.integration.spec.ts @@ -52,6 +52,101 @@ describe("getExternalSchema", () => { SET client_min_messages = warning; SET row_security = off; + -- + -- PostgreSQL database dump complete + -- + + " + `) + }) + + it("can export a database with tables", async () => { + const integration = new postgres.integration(config) + + integration.internalQuery({ + sql: ` + CREATE TABLE IF NOT EXISTS "users" ( + "id" SERIAL, + "name" VARCHAR(100) NOT NULL, + "role" VARCHAR(15) NOT NULL, + PRIMARY KEY ("id") + );`, + }) + + const result = await integration.getExternalSchema() + expect(result).toMatchInlineSnapshot(` + "-- + -- PostgreSQL database dump + -- + + -- Dumped from database version 15.3 (Debian 15.3-1.pgdg120+1) + -- Dumped by pg_dump version 15.3 + + SET statement_timeout = 0; + SET lock_timeout = 0; + SET idle_in_transaction_session_timeout = 0; + SET client_encoding = 'UTF8'; + SET standard_conforming_strings = on; + SELECT pg_catalog.set_config('search_path', '', false); + SET check_function_bodies = false; + SET xmloption = content; + SET client_min_messages = warning; + SET row_security = off; + + SET default_tablespace = ''; + + SET default_table_access_method = heap; + + -- + -- Name: users; Type: TABLE; Schema: public; Owner: postgres + -- + + CREATE TABLE public.users ( + id integer NOT NULL, + name character varying(100) NOT NULL, + role character varying(15) NOT NULL + ); + + + ALTER TABLE public.users OWNER TO postgres; + + -- + -- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres + -- + + CREATE SEQUENCE public.users_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + + ALTER TABLE public.users_id_seq OWNER TO postgres; + + -- + -- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres + -- + + ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; + + + -- + -- Name: users id; Type: DEFAULT; Schema: public; Owner: postgres + -- + + ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass); + + + -- + -- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres + -- + + ALTER TABLE ONLY public.users + ADD CONSTRAINT users_pkey PRIMARY KEY (id); + + -- -- PostgreSQL database dump complete --