// use the commonjs syntax to prevent compiler from transpiling the module syntax

import { createRequire } from 'node:module'
import * as path from 'node:path'

import test from 'ava'

const require = createRequire(import.meta.url)
const __dirname = path.dirname(new URL(import.meta.url).pathname)

test('unload module', (t) => {
  const { add } = require('../index.node')
  t.is(add(1, 2), 3)
  delete require.cache[require.resolve('../index.node')]
  const { add: add2 } = require('../index.node')
  t.is(add2(1, 2), 3)
})

test('load module multi times', (t) => {
  const { add } = require('../index.node')
  t.is(add(1, 2), 3)
  const { add: add2 } = require(
    path.toNamespacedPath(path.join(__dirname, '../index.node')),
  )
  t.is(add2(1, 2), 3)
})