@@ -725,83 +725,83 @@ describe('db_scan', () => {
725
725
} ) ;
726
726
727
727
it ( 'unbound works' , ( ) => {
728
- const idRegionPtr = vm . db_scan ( 0 , 0 , Order . Ascending ) ;
729
- const id = fromRegionPtr ( vm , idRegionPtr ) ;
728
+ const idRegion = vm . do_db_scan ( vm . allocate ( 0 ) , vm . allocate ( 0 ) , Order . Ascending ) ;
729
+ const id = toNumber ( idRegion . data ) ;
730
730
expect ( id ) . toBe ( 1 ) ;
731
731
732
732
let item = vm . do_db_next ( id ) ;
733
- expectEntryToBe ( testData . KEY1 , testData . VALUE1 , item ) ;
733
+ expectToBeKvp ( item , testData . KEY1 , testData . VALUE1 ) ;
734
734
735
735
item = vm . do_db_next ( id ) ;
736
- expectEntryToBe ( testData . KEY2 , testData . VALUE2 , item ) ;
736
+ expectToBeKvp ( item , testData . KEY2 , testData . VALUE2 ) ;
737
737
738
738
item = vm . do_db_next ( id ) ;
739
739
expect ( item . ptr ) . toBe ( 0 ) ;
740
740
} ) ;
741
741
742
742
it ( 'unbound descending works' , ( ) => {
743
- const idRegionPtr = vm . db_scan ( 0 , 0 , Order . Descending ) ;
744
- const id = fromRegionPtr ( vm , idRegionPtr ) ;
743
+ const idRegion = vm . do_db_scan ( vm . allocate ( 0 ) , vm . allocate ( 0 ) , Order . Descending ) ;
744
+ const id = toNumber ( idRegion . data ) ;
745
745
expect ( id ) . toBe ( 1 ) ;
746
746
747
747
let item = vm . do_db_next ( id ) ;
748
- expectEntryToBe ( testData . KEY2 , testData . VALUE2 , item ) ;
748
+ expectToBeKvp ( item , testData . KEY2 , testData . VALUE2 ) ;
749
749
750
750
item = vm . do_db_next ( id ) ;
751
- expectEntryToBe ( testData . KEY1 , testData . VALUE1 , item ) ;
751
+ expectToBeKvp ( item , testData . KEY1 , testData . VALUE1 ) ;
752
752
753
753
item = vm . do_db_next ( id ) ;
754
754
expect ( item . ptr ) . toBe ( 0 ) ;
755
755
} ) ;
756
756
757
757
it ( 'bound works' , ( ) => {
758
- const startRegionPtr = writeData ( vm , toAscii ( 'anna' ) ) . ptr ;
759
- const endRegionPtr = writeData ( vm , toAscii ( 'bert ' ) ) . ptr ;
760
-
761
- const idRegionPtr = vm . db_scan ( startRegionPtr , endRegionPtr , Order . Ascending ) ;
762
- const id = fromRegionPtr ( vm , idRegionPtr ) ;
758
+ const idRegion = vm . do_db_scan (
759
+ writeData ( vm , toAscii ( 'anna ' ) ) ,
760
+ writeData ( vm , toAscii ( 'bert' ) ) ,
761
+ Order . Ascending ) ;
762
+ const id = toNumber ( idRegion . data ) ;
763
763
expect ( id ) . toBe ( 1 ) ;
764
764
765
765
let item = vm . do_db_next ( id ) ;
766
- expectEntryToBe ( testData . KEY1 , testData . VALUE1 , item ) ;
766
+ expectToBeKvp ( item , testData . KEY1 , testData . VALUE1 ) ;
767
767
768
768
item = vm . do_db_next ( id ) ;
769
769
expect ( item . ptr ) . toBe ( 0 ) ;
770
770
} ) ;
771
771
772
772
it ( 'bound descending works' , ( ) => {
773
- const startRegionPtr = writeData ( vm , toAscii ( 'antler' ) ) . ptr ;
774
- const endRegionPtr = writeData ( vm , toAscii ( 'trespass ' ) ) . ptr ;
775
-
776
- const idRegionPtr = vm . db_scan ( startRegionPtr , endRegionPtr , Order . Descending ) ;
777
- const id = fromRegionPtr ( vm , idRegionPtr ) ;
773
+ const idRegion = vm . do_db_scan (
774
+ writeData ( vm , toAscii ( 'antler ' ) ) ,
775
+ writeData ( vm , toAscii ( 'trespass' ) ) ,
776
+ Order . Descending ) ;
777
+ const id = toNumber ( idRegion . data ) ;
778
778
expect ( id ) . toBe ( 1 ) ;
779
779
780
780
let item = vm . do_db_next ( id ) ;
781
- expectEntryToBe ( testData . KEY2 , testData . VALUE2 , item ) ;
781
+ expectToBeKvp ( item , testData . KEY2 , testData . VALUE2 ) ;
782
782
783
783
item = vm . do_db_next ( id ) ;
784
784
expect ( item . ptr ) . toBe ( 0 ) ;
785
785
} ) ;
786
786
787
787
it ( 'multiple iterators' , ( ) => {
788
- const idRegionPtr1 = vm . db_scan ( 0 , 0 , Order . Ascending ) ;
789
- const id1 = fromRegionPtr ( vm , idRegionPtr1 ) ;
788
+ const idRegion1 = vm . do_db_scan ( vm . allocate ( 0 ) , vm . allocate ( 0 ) , Order . Ascending ) ;
789
+ const id1 = toNumber ( idRegion1 . data ) ;
790
790
expect ( id1 ) . toBe ( 1 ) ;
791
791
792
- const idRegionPtr2 = vm . db_scan ( 0 , 0 , Order . Descending ) ;
793
- const id2 = fromRegionPtr ( vm , idRegionPtr2 ) ;
792
+ const idRegion2 = vm . do_db_scan ( vm . allocate ( 0 ) , vm . allocate ( 0 ) , Order . Descending ) ;
793
+ const id2 = toNumber ( idRegion2 . data ) ;
794
794
expect ( id2 ) . toBe ( 2 ) ;
795
795
796
- expectEntryToBe ( testData . KEY1 , testData . VALUE1 , vm . do_db_next ( id1 ) ) ; // first item, first iterator
797
- expectEntryToBe ( testData . KEY2 , testData . VALUE2 , vm . do_db_next ( id1 ) ) ; // second item, first iterator
798
- expectEntryToBe ( testData . KEY2 , testData . VALUE2 , vm . do_db_next ( id2 ) ) ; // first item, second iterator
799
- expect ( vm . do_db_next ( id1 ) . ptr ) . toBe ( 0 ) ; // end, first iterator
800
- expectEntryToBe ( testData . KEY1 , testData . VALUE1 , vm . do_db_next ( id2 ) ) ; // second item, second iterator
796
+ expectToBeKvp ( vm . do_db_next ( id1 ) , testData . KEY1 , testData . VALUE1 ) ; // first item, first iterator
797
+ expectToBeKvp ( vm . do_db_next ( id1 ) , testData . KEY2 , testData . VALUE2 ) ; // second item, first iterator
798
+ expectToBeKvp ( vm . do_db_next ( id2 ) , testData . KEY2 , testData . VALUE2 ) ; // first item, second iterator
799
+ expect ( vm . do_db_next ( id1 ) . ptr ) . toBe ( 0 ) ; // end, first iterator
800
+ expectToBeKvp ( vm . do_db_next ( id2 ) , testData . KEY1 , testData . VALUE1 ) ; // second item, second iterator
801
801
} ) ;
802
802
803
803
it ( 'fails for invalid order value' , ( ) => {
804
- expect ( ( ) => vm . db_scan ( 0 , 0 , 42 ) ) . toThrow ( ) ;
804
+ expect ( ( ) => vm . do_db_scan ( vm . allocate ( 0 ) , vm . allocate ( 0 ) , 42 ) ) . toThrowError ( 'Invalid order value 42' ) ;
805
805
} ) ;
806
806
} ) ;
807
807
@@ -815,8 +815,8 @@ describe('do_db_next', () => {
815
815
const idRegion = vm . do_db_scan ( vm . allocate ( 0 ) , vm . allocate ( 0 ) , Order . Ascending ) ;
816
816
const id = toNumber ( idRegion . data ) ;
817
817
818
- expectEntryToBe ( testData . KEY1 , testData . VALUE1 , vm . do_db_next ( id ) ) ;
819
- expectEntryToBe ( testData . KEY2 , testData . VALUE2 , vm . do_db_next ( id ) ) ;
818
+ expectToBeKvp ( vm . do_db_next ( id ) , testData . KEY1 , testData . VALUE1 ) ;
819
+ expectToBeKvp ( vm . do_db_next ( id ) , testData . KEY2 , testData . VALUE2 ) ;
820
820
expect ( vm . do_db_next ( id ) . ptr ) . toBe ( 0 ) ;
821
821
} ) ;
822
822
@@ -833,10 +833,10 @@ describe('do_db_next', () => {
833
833
// test helpers //
834
834
//////////////////
835
835
836
- function expectEntryToBe (
836
+ function expectToBeKvp (
837
+ actualItem : Region ,
837
838
expectedKey : Uint8Array ,
838
- expectedValue : Uint8Array ,
839
- actualItem : Region
839
+ expectedValue : Uint8Array
840
840
) {
841
841
const json = JSON . parse ( fromAscii ( actualItem . data ) ) ;
842
842
const key = new Uint8Array ( Object . values ( json . key ) ) ;
@@ -845,8 +845,3 @@ function expectEntryToBe(
845
845
expect ( key ) . toStrictEqual ( expectedKey ) ;
846
846
expect ( value ) . toStrictEqual ( expectedValue ) ;
847
847
}
848
-
849
- function fromRegionPtr ( vm : VMInstance , regionPtr : number ) : number {
850
- const region = vm . region ( regionPtr ) ;
851
- return toNumber ( region . data ) ;
852
- }
0 commit comments