title: Sinon throws on Discordjs ActionRowBuiilder stub
body: <p>I am struggling with stubbing third party elements with Sinon. Anybody seeing an issue here?
  The funny thing is I am running pretty much the exact same test for a different module and it works.
  I do admit I am not great on instantiation but really not seeing it.</p>
  <p><strong>Code to test</strong></p>
  <pre><code>'use strict'
  
  const { ActionRowBuilder, SelectMenuBuilder } = require('discord.js')
  
  class Action {
      static async selectHook (interaction, client, deleteId) {
          const row = new ActionRowBuilder()
              .addComponents(
                  new SelectMenuBuilder()
                      .setCustomId('confirmselect')
                      .setPlaceholder('Please confirm')
                      .addOptions(
                          {
                              label: 'I confirm',
                              description: `Confirm hook #${deleteId}`,
                              value: deleteId
                          }
                      )
              )
  
          await interaction.update({
              content: 'Hook was selected! Please confirm ' +
              'by using the select menu again.',
              components: [row],
              ephemeral: true
          })
      }
  }
  </code></pre>
  <p><strong>Test file</strong></p>
  <pre><code>'use strict'
  
  const sinon = require('sinon')
  const chai = require('chai')
  const chaiAsPromised = require('chai-as-promised')
  const sinonChai = require('sinon-chai')
  chai.use(chaiAsPromised)
  chai.use(sinonChai)
  const expect = chai.expect
  
  const { ActionRowBuilder, SelectMenuBuilder } = require('discord.js')
  
  const client = {
      once () {},
      on () {},
  },
  const interaction = {
      reply () {},
      followUp () {},
      update () {},
  },
  
  describe('app/Action', function () {
      afterEach( function () {
          sinon.restore()
      })
  
      describe('Action.selectHook', function () {
          it(' should run interaction.update', async function () {
              const updateStub = sinon.stub(interaction, 'update')
                  .resolves()
              sinon.spy(function () {
                  return sinon.createStubInstance(ActionRowBuilder)
              })
              sinon.spy(function () {
                  return sinon.createStubInstance(SelectMenuBuilder)
              })
  
              await Action.selectHook(interaction, client, 1)
  
              sinon.assert.calledOnceWithMatch(
                  updateStub,
                  {
                      content: 'Hook was selected! Please confirm ' +
                          'by using the select menu again.'
                  }
              )
          })
      })
  })
  </code></pre>
  <p><strong>I have also tried with</strong></p>
  <pre><code>sinon.createStubInstance(SelectMenuBuilder)
  sinon.createStubInstance(ActionRowBuilder)
  </code></pre>
  <p><strong>Anyways I get</strong></p>
  <pre><code>1)  should run interaction.update
  
  
    0 passing (199ms)
    1 failing
  
    1) app/Action
         Action.selectHook
            should run interaction.update:
       Error: Received one or more errors
        at UnionValidator.handle (node_modules/@sapphire/shapeshift/dist/index.js:1085:23)
        at UnionValidator.parse (node_modules/@sapphire/shapeshift/dist/index.js:142:88)
        at /home/axel/Dropbox/0_Programming/discordjs-captain-hook/node_modules/@discordjs/builders/dist/index.js:557:147
        at Array.map (&lt;anonymous&gt;)
        at SelectMenuBuilder.addOptions (node_modules/@discordjs/builders/dist/index.js:557:34)
        at SelectMenuBuilder.addOptions (node_modules/discord.js/src/structures/SelectMenuBuilder.js:48:18)
        at Function.selectHook (app/Action.js:108:22)
        at Context.&lt;anonymous&gt; (tests/mocha/Action.js:265:26)
        at processImmediate (node:internal/timers:464:21)
  </code></pre>
  <p><strong>Running on</strong></p>
  <pre><code>Nodejs: v16.13.2
  
      &quot;discord-api-types&quot;: &quot;^0.37.2&quot;,
      &quot;discord.js&quot;: &quot;^14.2.0&quot;,
      &quot;chai&quot;: &quot;^4.3.6&quot;,
      &quot;chai-as-promised&quot;: &quot;^7.1.1&quot;,
      &quot;mocha&quot;: &quot;^10.0.0&quot;,
      &quot;nyc&quot;: &quot;^15.1.0&quot;,
      &quot;sinon&quot;: &quot;^14.0.0&quot;,
      &quot;sinon-chai&quot;: &quot;^3.7.0&quot;
  </code></pre>