[ 'alpha' => ['default' => 'one'], 'group' => ['items' => [ 'beta' => ['default' => 'two'], 'gamma' => ['description' => 'no default'], ]], ], ]; prime_default_settings_under_test(); expect($GLOBALS['installer_default_writes'])->toHaveCount(1) ->and($GLOBALS['installer_default_writes'][0][0])->toContain('INSERT IGNORE INTO settings') ->toContain('(?, ?), (?, ?)') ->and($GLOBALS['installer_default_writes'][0][1])->toBe(['alpha', 'one', 'beta', 'two']) ->and($_SESSION['settings_primed'])->toBeTrue(); }); test('large setting collections are chunked and an existing prime marker skips work', function () { $items = []; for ($index = 0; $index < 251; $index++) { $items['setting_' . $index] = ['default' => (string) $index]; } $GLOBALS['settings'] = ['large' => $items]; prime_default_settings_under_test(); expect($GLOBALS['installer_default_writes'])->toHaveCount(2) ->and($GLOBALS['installer_default_writes'][0][1])->toHaveCount(500) ->and($GLOBALS['installer_default_writes'][1][1])->toHaveCount(2); prime_default_settings_under_test(); expect($GLOBALS['installer_default_writes'])->toHaveCount(2); });