47 lines
1.6 KiB
OpenEdge ABL
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');
|
|
}
|
|
} |