fix: InAppPurchase pre-emptive deallocation (#40938)

* fix: InAppPurchase pre-emptive deallocation

* test: try re-enabling IAP tests
This commit is contained in:
Shelley Vohr 2024-01-11 13:32:29 +01:00 committed by GitHub
parent b39ebb8625
commit d5d162b622
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 9 deletions

View file

@ -1,5 +1,6 @@
import { expect } from 'chai';
import { inAppPurchase } from 'electron/main';
import { ifdescribe } from './lib/spec-helpers';
describe('inAppPurchase module', function () {
if (process.platform !== 'darwin') return;
@ -33,11 +34,9 @@ describe('inAppPurchase module', function () {
expect(inAppPurchase.getReceiptURL()).to.match(/_MASReceipt\/receipt$/);
});
// The following three tests are disabled because they hit Apple servers, and
// Apple started blocking requests from AWS IPs (we think), so they fail on CI.
// TODO: find a way to mock out the server requests so we can test these APIs
// without relying on a remote service.
xdescribe('handles product purchases', () => {
// This fails on x64 in CI - likely owing to some weirdness with the machines.
// We should look into fixing it there but at least run it on arm6 machines.
ifdescribe(process.arch !== 'x64')('handles product purchases', () => {
it('purchaseProduct() fails when buying invalid product', async () => {
const success = await inAppPurchase.purchaseProduct('non-exist');
expect(success).to.be.false('failed to purchase non-existent product');