@@ -118,6 +118,90 @@ test('rejects existing-session selector conflicts under request lock policy', ()
118118 ) ;
119119} ) ;
120120
121+ test . each ( [
122+ {
123+ command : 'apps' ,
124+ flags : { platform : 'ios' , device : 'iPhone 17' } ,
125+ expected : { platform : 'ios' , device : 'iPhone 17' , serial : undefined } ,
126+ } ,
127+ {
128+ command : 'devices' ,
129+ flags : { platform : 'android' , serial : 'emulator-5554' } ,
130+ expected : { platform : 'android' , device : undefined , serial : 'emulator-5554' } ,
131+ } ,
132+ ] as const ) (
133+ 'allows $command to inspect a different selector under existing-session lock policy' ,
134+ ( { command, flags, expected } ) => {
135+ const req = applyRequestLockPolicy (
136+ {
137+ token : 'token' ,
138+ session : 'qa-ios' ,
139+ command,
140+ positionals : [ ] ,
141+ flags,
142+ meta : {
143+ lockPolicy : 'reject' ,
144+ } ,
145+ } ,
146+ IOS_SESSION ,
147+ ) ;
148+
149+ assert . deepEqual (
150+ {
151+ platform : req . flags ?. platform ,
152+ device : req . flags ?. device ,
153+ serial : req . flags ?. serial ,
154+ } ,
155+ {
156+ platform : expected . platform ,
157+ device : expected . device ,
158+ serial : expected . serial ,
159+ } ,
160+ ) ;
161+ } ,
162+ ) ;
163+
164+ test . each ( [
165+ {
166+ command : 'apps' ,
167+ flags : { device : 'iPhone 17' } ,
168+ expected : { platform : 'ios' , device : 'iPhone 17' , serial : undefined } ,
169+ } ,
170+ {
171+ command : 'devices' ,
172+ flags : { serial : 'emulator-5554' } ,
173+ expected : { platform : undefined , device : undefined , serial : 'emulator-5554' } ,
174+ } ,
175+ ] as const ) (
176+ 'allows $command to inspect a fresh selector under session lock policy' ,
177+ ( { command, flags, expected } ) => {
178+ const req = applyRequestLockPolicy ( {
179+ token : 'token' ,
180+ session : 'qa-ios' ,
181+ command,
182+ positionals : [ ] ,
183+ flags,
184+ meta : {
185+ lockPolicy : 'reject' ,
186+ lockPlatform : 'ios' ,
187+ } ,
188+ } ) ;
189+
190+ assert . deepEqual (
191+ {
192+ platform : req . flags ?. platform ,
193+ device : req . flags ?. device ,
194+ serial : req . flags ?. serial ,
195+ } ,
196+ {
197+ platform : expected . platform ,
198+ device : expected . device ,
199+ serial : expected . serial ,
200+ } ,
201+ ) ;
202+ } ,
203+ ) ;
204+
121205test ( 'allows matching redundant selectors for existing sessions' , ( ) => {
122206 const req = applyRequestLockPolicy (
123207 {
0 commit comments