SyncMadeEasy/force-app/main/default/classes/OAuthGuestAccess_Test.cls

47 lines
1.6 KiB
OpenEdge ABL

/**
* Coverage for CustomSettingRecordInsert.grantOAuthCallbackGuestAccess() —
* the post-install logic that grants the Site Guest User access to the
* Shopify OAuth callback REST endpoint.
*/
@isTest
private class OAuthGuestAccess_Test {
@isTest
static void grantsGuestAccess() {
Test.startTest();
try {
CustomSettingRecordInsert.grantOAuthCallbackGuestAccess();
} catch (Exception e) {
System.assert(false, 'Should not throw: ' + e.getMessage());
}
Test.stopTest();
// The permission set should have been created
List<PermissionSet> ps = [
SELECT Id FROM PermissionSet WHERE Name = 'SME_OAuthCallbackAccess'
];
System.assertEquals(1, ps.size(), 'Permission set should be created');
// Object permission should be granted
List<ObjectPermissions> op = [
SELECT Id FROM ObjectPermissions
WHERE ParentId = :ps[0].Id
AND SobjectType = 'HIC_ShopifySync__HIC_Configuration__c'
];
System.assertEquals(1, op.size(), 'Config object permission should be granted');
}
@isTest
static void idempotentOnRerun() {
// Running twice must not create duplicates or throw
Test.startTest();
CustomSettingRecordInsert.grantOAuthCallbackGuestAccess();
CustomSettingRecordInsert.grantOAuthCallbackGuestAccess();
Test.stopTest();
List<PermissionSet> ps = [
SELECT Id FROM PermissionSet WHERE Name = 'SME_OAuthCallbackAccess'
];
System.assertEquals(1, ps.size(), 'Permission set should not be duplicated');
}
}