1+ import { NavigraphNavigationDataInterface , PackageInfo } from "../js"
2+
3+ const navigationDataInterface = new NavigraphNavigationDataInterface ( )
4+
5+ describe ( "Package Management" , ( ) => {
6+ // This will run once for each test file
7+ beforeAll ( async ( ) => {
8+ const waitForReady = ( navDataInterface : NavigraphNavigationDataInterface ) : Promise < void > => {
9+ return new Promise ( ( resolve , _reject ) => {
10+ navDataInterface . onReady ( ( ) => resolve ( ) )
11+ } )
12+ }
13+
14+ await waitForReady ( navigationDataInterface )
15+ } , 30000 )
16+
17+ it ( "List packages contains bundled items" , async ( ) => {
18+ const packages = await navigationDataInterface . list_available_packages ( ) ;
19+
20+ const bundledV1 = packages . find ( ( item ) => item . cycle . cycle === '2101' && item . cycle . format === 'dfd' ) ;
21+ const bundledV2 = packages . find ( ( item ) => item . cycle . cycle === '2401' && item . cycle . format === 'dfdv2' ) ;
22+
23+ expect ( bundledV1 ) . toStrictEqual ( {
24+ cycle : {
25+ cycle : '2101' ,
26+ format : 'dfd' ,
27+ name : "Navigraph Avionics" ,
28+ revision : "1" ,
29+ validityPeriod : "2021-01-25/2021-02-20" ,
30+ } ,
31+ is_bundled : true ,
32+ path : "\\work/navigation-data/269b26b0-ba1b-3859-a9c0-4484dc766233" ,
33+ uuid : "269b26b0-ba1b-3859-a9c0-4484dc766233"
34+ } satisfies PackageInfo )
35+
36+ expect ( bundledV2 ) . toStrictEqual ( {
37+ cycle : {
38+ cycle : '2401' ,
39+ format : 'dfdv2' ,
40+ name : "Navigraph Avionics" ,
41+ revision : "1" ,
42+ validityPeriod : "2024-01-25/2024-02-21" ,
43+ } ,
44+ is_bundled : true ,
45+ path : "\\work/navigation-data/b8a9ecaa-a137-3059-b9f1-b7f2d5ddac37" ,
46+ uuid : "b8a9ecaa-a137-3059-b9f1-b7f2d5ddac37"
47+ } satisfies PackageInfo )
48+ } )
49+
50+ it ( "Clean up Packages" , async ( ) => {
51+ const active = await navigationDataInterface . get_active_package ( ) ;
52+
53+ await navigationDataInterface . clean_packages ( ) ;
54+
55+ let packages = await navigationDataInterface . list_available_packages ( ) ;
56+
57+ for ( const item of packages ) {
58+ expect ( item . is_bundled == true || item . cycle . format == active ?. cycle . format ) . toBe ( true ) ;
59+ }
60+
61+ await navigationDataInterface . clean_packages ( 0 ) ;
62+
63+ packages = await navigationDataInterface . list_available_packages ( ) ;
64+
65+ for ( const item of packages ) {
66+ expect ( item . is_bundled == true || item . uuid == active ?. uuid ) . toBe ( true ) ;
67+ }
68+ } , 40000 ) ;
69+
70+ it ( "Delete packages" , async ( ) => {
71+ const intialPackages = await navigationDataInterface . list_available_packages ( ) ;
72+ const activePackage = await navigationDataInterface . get_active_package ( ) ;
73+
74+ for ( const item of intialPackages ) {
75+ await navigationDataInterface . delete_package ( item . uuid ) ;
76+
77+ const newPackages = await navigationDataInterface . list_available_packages ( ) ;
78+
79+ for ( const newPackage of newPackages ) {
80+ expect ( newPackage . uuid !== item . uuid || item . uuid === activePackage ?. uuid ) . toBe ( true )
81+ }
82+ }
83+
84+ expect ( await navigationDataInterface . list_available_packages ( ) ) . toHaveLength ( activePackage ? 1 : 0 ) ;
85+ } , 30000 ) ;
86+ } )
0 commit comments