@@ -8,7 +8,12 @@ import * as TypeMoq from 'typemoq';
88import  {  Memento  }  from  'vscode' ; 
99import  {  ICommandManager  }  from  '../../client/common/application/types' ; 
1010import  {  Commands  }  from  '../../client/common/constants' ; 
11- import  {  PersistentStateFactory  }  from  '../../client/common/persistentState' ; 
11+ import  { 
12+  GLOBAL_PERSISTENT_KEYS_DEPRECATED , 
13+  KeysStorage , 
14+  PersistentStateFactory , 
15+  WORKSPACE_PERSISTENT_KEYS_DEPRECATED , 
16+ }  from  '../../client/common/persistentState' ; 
1217import  {  IDisposable  }  from  '../../client/common/types' ; 
1318import  {  sleep  }  from  '../core' ; 
1419import  {  MockMemento  }  from  '../mocks/mementos' ; 
@@ -91,9 +96,9 @@ suite('Persistent State', () => {
9196 test ( 'Ensure internal global storage extension uses to track other storages does not contain duplicate entries' ,  async  ( )  =>  { 
9297 persistentStateFactory . createGlobalPersistentState ( 'key1' ) ; 
9398 await  sleep ( 1 ) ; 
94-  persistentStateFactory . createGlobalPersistentState ( 'key2' ,  'defaultValue1' ) ; 
99+  persistentStateFactory . createGlobalPersistentState ( 'key2' ,  [ 'defaultValue1' ] ) ;   // Default value type is an array 
95100 await  sleep ( 1 ) ; 
96-  persistentStateFactory . createGlobalPersistentState ( 'key2' ,  'defaultValue1' ) ; 
101+  persistentStateFactory . createGlobalPersistentState ( 'key2' ,  [ 'defaultValue1' ] ) ; 
97102 await  sleep ( 1 ) ; 
98103 persistentStateFactory . createGlobalPersistentState ( 'key1' ) ; 
99104 await  sleep ( 1 ) ; 
@@ -102,13 +107,13 @@ suite('Persistent State', () => {
102107 value . sort ( ( k1 ,  k2 )  =>  k1 . key . localeCompare ( k2 . key ) ) , 
103108 [ 
104109 {  key : 'key1' ,  defaultValue : undefined  } , 
105-  {  key : 'key2' ,  defaultValue : 'defaultValue1'  } , 
110+  {  key : 'key2' ,  defaultValue : [ 'defaultValue1' ]  } , 
106111 ] . sort ( ( k1 ,  k2 )  =>  k1 . key . localeCompare ( k2 . key ) ) , 
107112 ) ; 
108113 } ) ; 
109114
110115 test ( 'Ensure internal workspace storage extension uses to track other storages does not contain duplicate entries' ,  async  ( )  =>  { 
111-  persistentStateFactory . createWorkspacePersistentState ( 'key2' ,  'defaultValue1' ) ; 
116+  persistentStateFactory . createWorkspacePersistentState ( 'key2' ,  'defaultValue1' ) ;   // Default value type is a string 
112117 await  sleep ( 1 ) ; 
113118 persistentStateFactory . createWorkspacePersistentState ( 'key1' ) ; 
114119 await  sleep ( 1 ) ; 
@@ -125,4 +130,38 @@ suite('Persistent State', () => {
125130 ] . sort ( ( k1 ,  k2 )  =>  k1 . key . localeCompare ( k2 . key ) ) , 
126131 ) ; 
127132 } ) ; 
133+ 
134+  test ( 'Ensure deprecated global storage extension used to track other storages with is reset' ,  async  ( )  =>  { 
135+  const  global  =  persistentStateFactory . createGlobalPersistentState < KeysStorage [ ] > ( 
136+  GLOBAL_PERSISTENT_KEYS_DEPRECATED , 
137+  ) ; 
138+  await  global . updateValue ( [ 
139+  {  key : 'oldKey' ,  defaultValue : [ ]  } , 
140+  {  key : 'oldKey2' ,  defaultValue : [ { } ]  } , 
141+  {  key : 'oldKey3' ,  defaultValue : [ '1' ,  '2' ,  '3' ]  } , 
142+  ] ) ; 
143+  expect ( global . value . length ) . to . equal ( 3 ) ; 
144+ 
145+  await  persistentStateFactory . activate ( ) ; 
146+  await  sleep ( 1 ) ; 
147+ 
148+  expect ( global . value . length ) . to . equal ( 0 ) ; 
149+  } ) ; 
150+ 
151+  test ( 'Ensure deprecated global storage extension used to track other storages with is reset' ,  async  ( )  =>  { 
152+  const  workspace  =  persistentStateFactory . createWorkspacePersistentState < KeysStorage [ ] > ( 
153+  WORKSPACE_PERSISTENT_KEYS_DEPRECATED , 
154+  ) ; 
155+  await  workspace . updateValue ( [ 
156+  {  key : 'oldKey' ,  defaultValue : [ ]  } , 
157+  {  key : 'oldKey2' ,  defaultValue : [ { } ]  } , 
158+  {  key : 'oldKey3' ,  defaultValue : [ '1' ,  '2' ,  '3' ]  } , 
159+  ] ) ; 
160+  expect ( workspace . value . length ) . to . equal ( 3 ) ; 
161+ 
162+  await  persistentStateFactory . activate ( ) ; 
163+  await  sleep ( 1 ) ; 
164+ 
165+  expect ( workspace . value . length ) . to . equal ( 0 ) ; 
166+  } ) ; 
128167} ) ; 
0 commit comments