FLS memeriksa 2GP
Saya telah membuat paket 2GP baru. Karena akan dirilis ke AppExchange, saya telah menerapkan pemeriksaan CRUD dan FLS generik untuk setiap tempat yang saya hubungi dengan Database dalam kode Apex saya.
misalnya
MyAwsomeObject.getDescribe().isUpdateable();
MyAwesomeField.getDescribe().isUpdateable();
Saya membangun versi paket baru dengan -ckunci untuk cakupan pengujian Apex, tetapi pengujian gagal karena pemeriksaan izin FLS. Pemeriksaan CRUD lulus dengan baik.
Dari dokumentasi, build 2GP berjalan seperti ini:
- Organisasi gores baru yang tidak dapat diakses dibuat.
- Metadata didorong ke organisasi awal.
- Tes dijalankan.
- Skrip pasca-pemasangan berjalan.
Jadi saya tidak melihat cara untuk menetapkan izin FLS kepada pengguna atas nama siapa yang menjalankan tes.
Membangun paket tanpa -catau tanpa pemeriksaan FLS bekerja dengan sempurna.
Apakah ada cara untuk mengatasi pemeriksaan FLS ini, memberikan akses FLS ke pengguna yang sedang berjalan atau solusi lainnya?
Jawaban
Jadi di Tes Apex, Anda dapat menggunakan fitur RunAs untuk melakukan ini - pada dasarnya, buat pengguna dalam pengujian, tetapkan profil dasar ( Akses Minimum baru berguna untuk ini), lalu tetapkan set izin, dan jalankan tes misalnya
Profile p = [SELECT Id FROM Profile WHERE Name = 'Minimum Access - Salesforce '];
User u = new User(Alias = 'standt', Email = '[email protected]',
EmailEncodingKey = 'UTF-8', LastName = 'Testing', LanguageLocaleKey = 'en_US', LocaleSidKey = 'en_US', ProfileId = p.Id,
TimeZoneSidKey = 'America/Los_Angeles', UserName = '[email protected]');
insert u;
PermissionSet ps = [SELECT Id FROM PermissionSet WHERE Name = 'My Permission Set'];
insert new PermissionSetAssignment(AssigneeId = u.id, PermissionSetId = ps.Id);
Tapi - ini mengasumsikan Anda termasuk Perm Set dalam paket. Jika tidak, Anda mungkin harus menunggu fitur baru ini (atau berlaku untuk uji coba) yang akan memungkinkan Anda menyertakan metadata non = terpaket dalam proses pembuatan paket ketika membangun org awal.