mirror of
https://github.com/facebook/docusaurus.git
synced 2025-04-28 17:57:48 +02:00
refactor(lqip-loader): split test files (#6858)
This commit is contained in:
parent
f763ac13a9
commit
5e2168ea22
5 changed files with 33 additions and 25 deletions
|
@ -34,7 +34,7 @@ export default {
|
|||
},
|
||||
moduleNameMapper: {
|
||||
// Jest can't resolve CSS or asset imports
|
||||
'^.+\\.(css|jpg|jpeg|png|svg)$': '<rootDir>/jest/emptyModule.js',
|
||||
'^.+\\.(css|jpe?g|png|svg)$': '<rootDir>/jest/emptyModule.js',
|
||||
|
||||
// TODO we need to allow Jest to resolve core Webpack aliases automatically
|
||||
'@docusaurus/(browserContext|BrowserOnly|ComponentCreator|constants|docusaurusContext|ExecutionEnvironment|Head|Interpolate|isInternalUrl|Link|Noop|renderRoutes|router|Translate|use.*)':
|
||||
|
|
|
@ -56,7 +56,7 @@ export default function pluginIdealImage(
|
|||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.(?:png|jpe?g|gif)$/i,
|
||||
test: /\.(?:png|jpe?g)$/i,
|
||||
use: [
|
||||
require.resolve('@docusaurus/lqip-loader'),
|
||||
{
|
||||
|
|
29
packages/lqip-loader/src/__tests__/lqip.test.ts
Normal file
29
packages/lqip-loader/src/__tests__/lqip.test.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import path from 'path';
|
||||
import * as lqip from '../lqip';
|
||||
|
||||
describe('lqip library', () => {
|
||||
const imgPath = path.join(__dirname, '__fixtures__', 'endi.jpg');
|
||||
const invalidPath = path.join(__dirname, '__fixtures__', 'docusaurus.svg');
|
||||
|
||||
it('should reject unknown or unsupported file format', async () => {
|
||||
await expect(lqip.base64(invalidPath)).rejects.toBeTruthy();
|
||||
});
|
||||
|
||||
it('should generate a valid base64', async () => {
|
||||
const expectedBase64 = 'data:image/jpeg;base64,/9j/2wBDA';
|
||||
await expect(lqip.base64(imgPath)).resolves.toContain(expectedBase64);
|
||||
});
|
||||
|
||||
it('should generate a valid color palette', async () => {
|
||||
const imgPalette = await lqip.palette(imgPath);
|
||||
expect(imgPalette).toHaveLength(6);
|
||||
expect(imgPalette).toContain('#578ca1');
|
||||
});
|
||||
});
|
|
@ -10,7 +10,6 @@ import Vibrant from 'node-vibrant';
|
|||
import type {Palette} from 'node-vibrant/lib/color';
|
||||
|
||||
import {toPalette, toBase64} from '../utils';
|
||||
import * as lqip from '../lqip';
|
||||
|
||||
describe('lqip-loader', () => {
|
||||
describe('toBase64', () => {
|
||||
|
@ -44,24 +43,4 @@ describe('lqip-loader', () => {
|
|||
expect(toPalette(testSwatchWithNull)).toHaveLength(5);
|
||||
});
|
||||
});
|
||||
|
||||
describe('lqip library', () => {
|
||||
const imgPath = path.join(__dirname, '__fixtures__', 'endi.jpg');
|
||||
const invalidPath = path.join(__dirname, '__fixtures__', 'docusaurus.svg');
|
||||
|
||||
it('should reject unknown or unsupported file format', async () => {
|
||||
await expect(lqip.base64(invalidPath)).rejects.toBeTruthy();
|
||||
});
|
||||
|
||||
it('should generate a valid base64', async () => {
|
||||
const expectedBase64 = 'data:image/jpeg;base64,/9j/2wBDA';
|
||||
await expect(lqip.base64(imgPath)).resolves.toContain(expectedBase64);
|
||||
});
|
||||
|
||||
it('should generate a valid color palette', async () => {
|
||||
const imgPalette = await lqip.palette(imgPath);
|
||||
expect(imgPalette).toHaveLength(6);
|
||||
expect(imgPalette).toContain('#578ca1');
|
||||
});
|
||||
});
|
||||
});
|
|
@ -25,6 +25,8 @@ export default async function lqipLoader(
|
|||
|
||||
const config = this.getOptions() || {};
|
||||
config.base64 = 'base64' in config ? config.base64 : true;
|
||||
// color palette generation is set to false by default
|
||||
// since it is little bit slower than base64 generation
|
||||
config.palette = 'palette' in config ? config.palette : false;
|
||||
|
||||
let content = contentBuffer.toString('utf8');
|
||||
|
@ -53,8 +55,6 @@ export default async function lqipLoader(
|
|||
|
||||
const outputPromises: [Promise<string> | null, Promise<string[]> | null] = [
|
||||
config.base64 === true ? lqip.base64(imgPath) : null,
|
||||
// color palette generation is set to false by default
|
||||
// since it is little bit slower than base64 generation
|
||||
config.palette === true ? lqip.palette(imgPath) : null,
|
||||
];
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue