Files
self/app/scripts/tests/bundleAnalyzeCi.test.cjs
Justin Hernandez 20fa5c5adc [SELF-700] feat: add mock document generator demo (#995)
* feat: add mock document generator demo

* feat: add mock document generator

* fixes

* chore: refresh workflow cache

* update lock

* build

* updates

* more fixes

* code rabbit feedback

* compiles

* save wip

* updates

* merge with dev and fixes

* fix: align hoisting and demo Jest resolver (#1003)

* chore(app): map common src paths and declare svg flag module

* ci fix

* update lock

* save wip

* chore: address yarn lock issues (#1004)

* address yarn lock issues

* fix postinstall

* fix ci

* use metro js proxy

* android build working for /app

* save wip

* fix merge

* pipeline fixes

* format

* fix pipelines

* bump limit and split

* fix pipeline issues

* chore: decouple demo app build (#1013)

* chore: decouple demo app build

* chore: move demo app to workspace

* chore: unpublish demo workspace

* fix mobile sdk tests

* updates

* remove polyfills

* update merge

* update resolutions

* update resolutions

* fix merge

* fix paths

* save wip

* save wip fixes rd2

* working android

* update lock

* save wip ios building

* fix merge

* readd public key

* fixes

* ci fixes

* fixes

* fix web building

* fix ci

* fix tests

* update lock

* fix ci rd2

* formatting and fix ci

* fix

* finalize ci fixes

* fix tests and metro config paths for building

* save wip

* install missing package for pipeline

* fix wip app building

* wip react config

* save working emulator compile

* first round of pr fixes and feedback

* clean up demo app artifacts from sdk

* Add Gradle wrapper files for mobile-sdk-demo Android build

- Added gradlew, gradlew.bat, and gradle/wrapper/ directory
- Updated .gitignore to allow committing Gradle wrapper files
- Fixes Android build error: spawn ./gradlew ENOENT

* codex feedback and fixes

* fix tests

* file renames

* revert back to dev

* add types

* coderabbit fixes

* fix tests

* fix tests

* fix test

* fixes

* fix wip coderabbit issues

* coderabbit suggestions rd 2

* fix ci pipelines and addresss warnings

* cr fixes

* convert kebab to camelCase

* save wip fixes

* update reinstall and lock files

* fixes

* remove file

* fix lint

* fix polyfill fallback issues

* ensure that mock document is not on ofac list

* prettier
2025-09-27 13:59:47 -07:00

66 lines
2.3 KiB
JavaScript

#!/usr/bin/env node
// SPDX-FileCopyrightText: 2025 Social Connect Labs, Inc.
// SPDX-License-Identifier: BUSL-1.1
// NOTE: Converts to Apache-2.0 on 2029-06-11 per LICENSE.
const { execSync } = require('child_process');
const { readFileSync } = require('fs');
const { join } = require('path');
const { describe, it } = require('node:test');
const assert = require('node:assert');
describe('bundle-analyze-ci.cjs', () => {
const scriptPath = join(__dirname, '..', 'bundle-analyze-ci.cjs');
it('should exit with error when no platform is provided', () => {
assert.throws(() => {
execSync(`node ${scriptPath}`, { stdio: 'pipe' });
});
});
it('should exit with error when invalid platform is provided', () => {
assert.throws(() => {
execSync(`node ${scriptPath} invalid-platform`, { stdio: 'pipe' });
});
});
it('should have human-readable thresholds defined', () => {
const scriptContent = readFileSync(scriptPath, 'utf8');
// Check that the DRY checkBundleSize function exists
assert(scriptContent.includes('function checkBundleSize'));
assert(scriptContent.includes('thresholdMB * 1024 * 1024'));
// Check that WARNING_INCREASE is removed
assert(!scriptContent.includes('BUNDLE_WARNING_INCREASE'));
assert(!scriptContent.includes('WARNING_INCREASE'));
});
it('should have formatBytes function', () => {
const scriptContent = readFileSync(scriptPath, 'utf8');
assert(scriptContent.includes('function formatBytes'));
});
it('should have proper error handling for missing bundle file', () => {
const scriptContent = readFileSync(scriptPath, 'utf8');
assert(scriptContent.includes('Bundle file not found'));
assert(scriptContent.includes('process.exit(1)'));
});
it('should have helpful error message with threshold update instructions', () => {
const scriptContent = readFileSync(scriptPath, 'utf8');
assert(
scriptContent.includes(
'To increase the threshold, edit BUNDLE_THRESHOLDS_MB',
),
);
});
it('should use DRY approach with checkBundleSize function', () => {
const scriptContent = readFileSync(scriptPath, 'utf8');
assert(scriptContent.includes('checkBundleSize(bundleSize, platform)'));
assert(scriptContent.includes('return false'));
assert(scriptContent.includes('return true'));
});
});