@@ -104,6 +104,42 @@ test.serial('rename manifest', async t => {
104
104
await deleteManifests ( t , id ) ;
105
105
} ) ;
106
106
107
+ test . serial ( 'rename hardhat from unknown to dev manifest' , async t => {
108
+ const id = 31337 ;
109
+
110
+ await deleteFile ( t , `.openzeppelin/unknown-${ id } .json` ) ;
111
+ await writeTestManifest ( `.openzeppelin/unknown-${ id } .json` ) ;
112
+
113
+ const instanceId = '0xaa0' ;
114
+ const devInstanceMetadata = { networkName : 'hardhat' , instanceId : instanceId } ;
115
+
116
+ const manifest = new Manifest ( id , devInstanceMetadata , os . tmpdir ( ) ) ;
117
+
118
+ await fs . access ( `.openzeppelin/unknown-${ id } .json` ) ;
119
+ await manifest . lockedRun ( async ( ) => {
120
+ await fs . access ( `${ os . tmpdir ( ) } /openzeppelin-upgrades/chain-${ id } -${ instanceId } .lock` ) ;
121
+ const data = await manifest . read ( ) ;
122
+ data . proxies . push ( {
123
+ address : '0x456' ,
124
+ txHash : '0x0' ,
125
+ kind : 'uups' ,
126
+ } ) ;
127
+
128
+ await fs . access ( `.openzeppelin/unknown-${ id } .json` ) ;
129
+ await manifest . write ( data ) ;
130
+ } ) ;
131
+ t . throwsAsync ( fs . access ( `.openzeppelin/unknown-${ id } .json` ) ) ;
132
+ await fs . access ( `${ os . tmpdir ( ) } /openzeppelin-upgrades/hardhat-${ id } -${ instanceId } .json` ) ;
133
+
134
+ const dev = await new Manifest ( id , devInstanceMetadata , os . tmpdir ( ) ) . read ( ) ;
135
+ t . is ( dev . proxies . length , 2 ) ;
136
+ t . is ( dev . proxies [ 0 ] . address , '0x123' ) ;
137
+ t . is ( dev . proxies [ 1 ] . address , '0x456' ) ;
138
+
139
+ await deleteFile ( t , `.openzeppelin/unknown-${ id } .json` ) ;
140
+ await deleteFile ( t , `${ os . tmpdir ( ) } /openzeppelin-upgrades/hardhat-${ id } -${ instanceId } .json` ) ;
141
+ } ) ;
142
+
107
143
test . serial ( 'forked chain from known network with fallback name' , async t => {
108
144
const forkedId = 80001 ;
109
145
const devId = 55555 ;
@@ -359,6 +395,18 @@ test('manifest name for an unknown network, development instance, non hardhat',
359
395
t . is ( manifest . fallbackFile , expectedPath ) ;
360
396
} ) ;
361
397
398
+ test ( 'manifest name for an unknown network, development instance, hardhat' , t => {
399
+ const chainId = 31337 ;
400
+ const instanceId = '0x22223' ;
401
+ const devInstanceMetadata = { networkName : 'dev' , instanceId : instanceId } ;
402
+
403
+ const manifest = new Manifest ( chainId , devInstanceMetadata , '/tmp' ) ;
404
+
405
+ const expectedPath = `/tmp/openzeppelin-upgrades/dev-${ chainId } -${ instanceId } .json` ;
406
+ t . is ( manifest . file , expectedPath ) ;
407
+ t . is ( manifest . fallbackFile , `.openzeppelin/unknown-${ chainId } .json` ) ;
408
+ } ) ;
409
+
362
410
test ( 'manifest dev instance without tmp dir param' , t => {
363
411
const chainId = 1 ;
364
412
const instanceId = '0x33333' ;
0 commit comments