// @ts-check
/**
 * @file Tests for the documentation.
 */

import {strict as assert} from 'node:assert';
import {test} from 'mocha';
import {getThirdPartyExtensions, getThirdPartyLibraries} from '../sdk.mjs';

test('README third party extensions must be alphabetically sorted', async () => {
	const thirdPartyExtensions = await getThirdPartyExtensions();
	assert.ok(thirdPartyExtensions.length > 0);

	const thirdPartyExtensionsNames = thirdPartyExtensions.map(
		(extension) => extension.module.name,
	);

	const expectedOrder = [...thirdPartyExtensionsNames].sort();
	assert.deepEqual(
		thirdPartyExtensionsNames,
		expectedOrder,
		'Wrong alphabetical order of third party extensions in README.',
	);
});

test('README third party libraries must be alphabetically sorted', async () => {
	const thirdPartyLibraries = await getThirdPartyLibraries();
	assert.ok(thirdPartyLibraries.length > 0);

	const thirdPartyLibrariesNames = thirdPartyLibraries.map(
		(library) => library.module.name,
	);

	const expectedOrder = [...thirdPartyLibrariesNames].sort();
	assert.deepEqual(
		thirdPartyLibrariesNames,
		expectedOrder,
		'Wrong alphabetical order of third party libraries in README.',
	);
});
