@@ -32,24 +32,25 @@ const ANDROID_SESSION: SessionState = {
3232 } ,
3333} ;
3434
35- test ( 'rejects fresh-session selector conflicts under request lock policy' , ( ) => {
36- assert . throws (
37- ( ) =>
38- applyRequestLockPolicy ( {
39- token : 'token' ,
40- session : 'qa-ios' ,
41- command : 'snapshot' ,
42- positionals : [ ] ,
43- flags : {
44- device : 'Pixel 9' ,
45- } ,
46- meta : {
47- lockPolicy : 'reject' ,
48- lockPlatform : 'ios' ,
49- } ,
50- } ) ,
51- / - - d e v i c e = P i x e l 9 / i,
52- ) ;
35+ test ( 'allows compatible fresh-session selectors under request lock policy' , ( ) => {
36+ const req = applyRequestLockPolicy ( {
37+ token : 'token' ,
38+ session : 'qa-ios' ,
39+ command : 'snapshot' ,
40+ positionals : [ ] ,
41+ flags : {
42+ device : 'iPhone 16' ,
43+ udid : 'SIM-001' ,
44+ } ,
45+ meta : {
46+ lockPolicy : 'reject' ,
47+ lockPlatform : 'ios' ,
48+ } ,
49+ } ) ;
50+
51+ assert . equal ( req . flags ?. platform , 'ios' ) ;
52+ assert . equal ( req . flags ?. device , 'iPhone 16' ) ;
53+ assert . equal ( req . flags ?. udid , 'SIM-001' ) ;
5354} ) ;
5455
5556test ( 'allows open to choose a fresh-session target under request lock policy' , ( ) => {
@@ -74,7 +75,7 @@ test('allows open to choose a fresh-session target under request lock policy', (
7475 assert . equal ( req . flags ?. udid , 'SIM-001' ) ;
7576} ) ;
7677
77- test ( 'strips fresh-session selector conflicts and restores lock platform' , ( ) => {
78+ test ( 'strips only fresh-session selector conflicts and restores lock platform' , ( ) => {
7879 const req = applyRequestLockPolicy ( {
7980 token : 'token' ,
8081 session : 'qa-ios' ,
@@ -92,10 +93,32 @@ test('strips fresh-session selector conflicts and restores lock platform', () =>
9293 } ) ;
9394
9495 assert . equal ( req . flags ?. platform , 'ios' ) ;
95- assert . equal ( req . flags ?. target , undefined ) ;
96+ assert . equal ( req . flags ?. target , 'tv' ) ;
9697 assert . equal ( req . flags ?. serial , undefined ) ;
9798} ) ;
9899
100+ test ( 'strips iOS selectors while preserving compatible macOS platform under Apple lock' , ( ) => {
101+ const req = applyRequestLockPolicy ( {
102+ token : 'token' ,
103+ session : 'qa-macos' ,
104+ command : 'snapshot' ,
105+ positionals : [ ] ,
106+ flags : {
107+ platform : 'macos' ,
108+ udid : 'SIM-001' ,
109+ iosSimulatorDeviceSet : '/tmp/tenant-a/set' ,
110+ } ,
111+ meta : {
112+ lockPolicy : 'strip' ,
113+ lockPlatform : 'apple' ,
114+ } ,
115+ } ) ;
116+
117+ assert . equal ( req . flags ?. platform , 'macos' ) ;
118+ assert . equal ( req . flags ?. udid , undefined ) ;
119+ assert . equal ( req . flags ?. iosSimulatorDeviceSet , undefined ) ;
120+ } ) ;
121+
99122test ( 'rejects existing-session selector conflicts under request lock policy' , ( ) => {
100123 assert . throws (
101124 ( ) =>
0 commit comments