@@ -3,22 +3,30 @@ import {
33 db ,
44 shutdown ,
55 startPostgresAndZero ,
6- } from '@zero-drizzle/db/test-utils' ;
6+ } from '@drizzle-zero/db/test-utils' ;
7+ import { getShortCode } from '@drizzle-zero/db/types' ;
78import { Zero } from '@rocicorp/zero' ;
89import { zeroDrizzle } from '@rocicorp/zero/server/adapters/drizzle' ;
10+ import type { Server } from 'http' ;
911import {
1012 afterAll ,
13+ assert ,
1114 beforeAll ,
1215 describe ,
1316 expect ,
1417 expectTypeOf ,
1518 test ,
1619} from 'vitest' ;
1720import { WebSocket } from 'ws' ;
21+ import {
22+ startGetQueriesServer ,
23+ stopGetQueriesServer ,
24+ } from '../get-queries-server' ;
1825import {
1926 allTypesById ,
2027 allTypesByStatus ,
2128 allUsers ,
29+ complexOrderWithEverything ,
2230 filtersWithChildren ,
2331 mediumById ,
2432 messageById ,
@@ -27,20 +35,13 @@ import {
2735 messagesBySender ,
2836 userWithFriends ,
2937 userWithMediums ,
30- complexOrderWithEverything ,
3138} from '../synced-queries' ;
3239import { schema , type Filter , type Schema } from '../zero-schema.gen' ;
33- import {
34- startGetQueriesServer ,
35- stopGetQueriesServer ,
36- } from '../get-queries-server' ;
37- import type { Server } from 'http' ;
38- import { getShortCode } from '@zero-drizzle/db/types' ;
3940
40- const zeroDb = zeroDrizzle ( schema , db as any ) ;
41+ const zeroDb = zeroDrizzle ( schema , db ) ;
4142
4243// Provide WebSocket on the global scope
43- globalThis . WebSocket = WebSocket as any ;
44+ globalThis . WebSocket = WebSocket as unknown as typeof globalThis . WebSocket ;
4445
4546let queriesServer : Server ;
4647
@@ -820,7 +821,9 @@ describe('complex order', () => {
820821 } ) ;
821822
822823 const query = complexOrderWithEverything ( undefined , 'order-test-1' ) ;
823- const result = ( await zero . run ( query , { type : 'complete' } ) ) as any ;
824+ const result = await zero . run ( query , { type : 'complete' } ) ;
825+
826+ assert ( result ) ;
824827
825828 // Order basic fields
826829 expect ( result . id ) . toBe ( 'order-test-1' ) ;
@@ -830,6 +833,8 @@ describe('complex order', () => {
830833 expect ( result . customerId ) . toBe ( 'cust-1' ) ;
831834 expect ( result . opportunityId ) . toBe ( 'opp-1' ) ;
832835
836+ assert ( result . customer ) ;
837+
833838 // Customer relationship
834839 expect ( result . customer ) . toBeDefined ( ) ;
835840 expect ( result . customer . id ) . toBe ( 'cust-1' ) ;
@@ -838,36 +843,48 @@ describe('complex order', () => {
838843 expect ( result . customer . partner ) . toBe ( false ) ;
839844 expect ( result . customer . status ) . toBe ( 'COMPLETED' ) ;
840845
846+ assert ( result . customer . friends ?. [ 0 ] ) ;
847+
841848 // Customer friends relationship
842849 expect ( result . customer . friends ) . toHaveLength ( 1 ) ;
843850 expect ( result . customer . friends [ 0 ] . id ) . toBe ( 'friend-1' ) ;
844851 expect ( result . customer . friends [ 0 ] . name ) . toBe ( 'Customer Friend' ) ;
845852
853+ assert ( result . customer . messages ?. [ 0 ] ) ;
854+
846855 // Customer messages relationship
847856 expect ( result . customer . messages ) . toHaveLength ( 1 ) ;
848857 expect ( result . customer . messages [ 0 ] . id ) . toBe ( 'msg-cust-1' ) ;
849858 expect ( result . customer . messages [ 0 ] . body ) . toBe ( 'Hello from customer' ) ;
850859 expect ( result . customer . messages [ 0 ] . metadata . key ) . toBe ( 'cust-meta' ) ;
851860
861+ assert ( result . opportunity ) ;
862+
852863 // Opportunity relationship
853864 expect ( result . opportunity ) . toBeDefined ( ) ;
854865 expect ( result . opportunity . id ) . toBe ( 'opp-1' ) ;
855866 expect ( result . opportunity . name ) . toBe ( 'Big Deal' ) ;
856867 expect ( result . opportunity . amount ) . toBe ( 125000 ) ;
857868 expect ( result . opportunity . accountId ) . toBe ( 'acct-1' ) ;
858869
870+ assert ( result . opportunity . account ) ;
871+
859872 // Opportunity account relationship
860873 expect ( result . opportunity . account ) . toBeDefined ( ) ;
861874 expect ( result . opportunity . account . id ) . toBe ( 'acct-1' ) ;
862875 expect ( result . opportunity . account . name ) . toBe ( 'Acme Corp' ) ;
863876 expect ( result . opportunity . account . industry ) . toBe ( 'Manufacturing' ) ;
864877 expect ( result . opportunity . account . ownerId ) . toBe ( 'owner-1' ) ;
865878
879+ assert ( result . opportunity . historyEntries ?. [ 0 ] ) ;
880+
866881 // Opportunity history entries
867882 expect ( result . opportunity . historyEntries ) . toHaveLength ( 1 ) ;
868883 expect ( result . opportunity . historyEntries [ 0 ] . id ) . toBe ( 'opp-hist-1' ) ;
869884 expect ( result . opportunity . historyEntries [ 0 ] . opportunityId ) . toBe ( 'opp-1' ) ;
870885
886+ assert ( result . items ?. [ 0 ] ) ;
887+
871888 // Order items
872889 expect ( result . items ) . toHaveLength ( 1 ) ;
873890 expect ( result . items [ 0 ] . id ) . toBe ( 'order-item-test-1' ) ;
@@ -876,6 +893,8 @@ describe('complex order', () => {
876893 expect ( result . items [ 0 ] . unitPrice ) . toBe ( 4999 ) ;
877894 expect ( result . items [ 0 ] . variantId ) . toBe ( 'variant-1' ) ;
878895
896+ assert ( result . items ?. [ 0 ] . variant ) ;
897+
879898 // Item variant relationship
880899 expect ( result . items [ 0 ] . variant ) . toBeDefined ( ) ;
881900 expect ( result . items [ 0 ] . variant . id ) . toBe ( 'variant-1' ) ;
@@ -884,6 +903,8 @@ describe('complex order', () => {
884903 expect ( result . items [ 0 ] . variant . currency ) . toBe ( 'USD' ) ;
885904 expect ( result . items [ 0 ] . variant . isActive ) . toBe ( true ) ;
886905
906+ assert ( result . payments ?. [ 0 ] ) ;
907+
887908 // Payments
888909 expect ( result . payments ) . toHaveLength ( 1 ) ;
889910 expect ( result . payments [ 0 ] . id ) . toBe ( 'order-payment-test-1' ) ;
@@ -892,6 +913,8 @@ describe('complex order', () => {
892913 expect ( result . payments [ 0 ] . status ) . toBe ( 'PENDING' ) ;
893914 expect ( result . payments [ 0 ] . paymentId ) . toBe ( 'payment-test-1' ) ;
894915
916+ assert ( result . payments ?. [ 0 ] . payment ) ;
917+
895918 // Payment relationship
896919 expect ( result . payments [ 0 ] . payment ) . toBeDefined ( ) ;
897920 expect ( result . payments [ 0 ] . payment . id ) . toBe ( 'payment-test-1' ) ;
@@ -900,13 +923,17 @@ describe('complex order', () => {
900923 expect ( result . payments [ 0 ] . payment . status ) . toBe ( 'PENDING' ) ;
901924 expect ( result . payments [ 0 ] . payment . receivedById ) . toBe ( 'sales-1' ) ;
902925
926+ assert ( result . shipments ?. [ 0 ] ) ;
927+
903928 // Shipments
904929 expect ( result . shipments ) . toHaveLength ( 1 ) ;
905930 expect ( result . shipments [ 0 ] . id ) . toBe ( 'shipment-test-1' ) ;
906931 expect ( result . shipments [ 0 ] . orderId ) . toBe ( 'order-test-1' ) ;
907932 expect ( result . shipments [ 0 ] . carrier ) . toBe ( 'UPS' ) ;
908933 expect ( result . shipments [ 0 ] . trackingNumber ) . toBe ( '1Z999' ) ;
909934
935+ assert ( result . shipments ?. [ 0 ] . items ?. [ 0 ] ) ;
936+
910937 // Shipment items
911938 expect ( result . shipments [ 0 ] . items ) . toHaveLength ( 1 ) ;
912939 expect ( result . shipments [ 0 ] . items [ 0 ] . id ) . toBe ( 'shipment-item-test-1' ) ;
0 commit comments