MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/snap.cafsinfotech.in/node_modules/img-loader/__tests__/index.spec.js
/* eslint-env mocha */
'use strict'
var assert = require('assert')
var fs = require('fs')
var path = require('path')
var gifsicle = require('imagemin-gifsicle')
var svgo = require('imagemin-svgo')
var run = require('./run-webpack')

var fixtureGif = fs.readFileSync(path.resolve(__dirname, './fixture.gif'))
var fixtureSvg = fs.readFileSync(path.resolve(__dirname, './fixture.svg'))

describe('img-loader', () => {
  it('passes the img though unchanged by default', function () {
    return run('./fixture.gif').then(function (image) {
      assert(image.equals(fixtureGif), 'gif should be unchanged')
    })
  })

  it('can apply optimizations for gif', function () {
    return run('./fixture.gif', {
      plugins: [ gifsicle({}) ]
    }).then(function (image) {
      assert(!image.equals(fixtureGif), 'gif should be changed')
      assert(image.length < fixtureGif.length, 'optimized gif should be smaller')
    })
  })

  it('can apply optimizations for svg', function () {
    return run('./fixture.svg', {
      plugins: [ svgo({}) ]
    }).then(function (image) {
      assert(!image.equals(fixtureSvg), 'svg should be changed')
      assert(image.length < fixtureSvg.length, 'optimized svg should be smaller')
      assert.strictEqual(image.toString('utf8'), '<svg/>')
    })
  })

  it('can use a function for plugins', function () {
    var context
    return run('./fixture.svg', {
      plugins: function (ctx) {
        context = ctx
        return [ svgo({}) ]
      }
    }).then(function (image) {
      assert.strictEqual(path.basename(context.resourcePath), 'fixture.svg')
      assert(image.length < fixtureSvg.length, 'optimized svg should be smaller')
    })
  })
})