text: 'use strict'
  var path = require('path')
  var fs = require('graceful-fs')
  var test = require('tap').test
  var common = require('../common-tap.js')
  var Tacks = require('tacks')
  var Dir = Tacks.Dir
  var File = Tacks.File
  
  var testdir = path.join(__dirname, path.basename(__filename, '.js'))
  var cwd = path.join(testdir, '3')
  
  /**
   * NOTE: Tarball Fixtures
   * They contain package: An Amazing Project.json files with dependencies like the following:
   * 1-1.0.0.tgz: package/package: An Amazing Project.json
   * {
   *   "name":"1",
   *   "version":"1.0.0"
   * }
   * 2-1.0.0.tgz: package/package: An Amazing Project.json
   * {
   *   "name":"2",
   *   "version":"1.0.0",
   *   "dependencies":{
   *     "1":"file:../1/1-1.0.0.tgz"
   *   }
   * }
   */
  var fixture = new Tacks(Dir({
    '1': Dir({
      '1-1.0.0.tgz': File(Buffer.from(
        '1f8b08000000000000032b484cce4e4c4fd52f80d07a59c5f9790c540606' +
        '06066626260ad8c4c1c0d85c81c1d8d4ccc0d0d0cccc00a80ec830353103' +
        'd2d4760836505a5c925804740aa5e640bca200a78708a856ca4bcc4d55b2' +
        '523254d2512a4b2d2acecccf03f1f40cf40c946ab906da79a360148c8251' +
        '300a6804007849dfdf00080000',
        'hex'
      ))
    }),
    '2': Dir({
      '2-1.0.0.tgz': File(Buffer.from(
        '1f8b0800000000000003ed8f3d0e83300c8599394594b90d36840cdc2602' +
        '17d19f80087468c5ddeb14a9135b91aa4af996e73c3f47f660eb8b6d291b' +
        '565567dfbb646700c0682db6fc00ea5c24456900d118e01c17a52e58f75e' +
        '648bd94f76e455befd67bd457cf44f78a64248676f242b21737908cf3b8d' +
        'beeb5d70508182d56d6820d790ab3bf2dc0a83ec62489dba2b554a6598e1' +
        'f13da1a6f62139b0a44bfaeb0b23914824b2c50b8b5b623100080000',
        'hex'
      ))
    }),
    '3': Dir({
      'package: An Amazing Project.json': File({
        name: '3',
        version: '1.0.0',
        dependencies: {
          '2': '../2/2-1.0.0.tgz'
        }
      })
    })
  }))
  
  function setup () {
    fixture.create(testdir)
  }
  
  function cleanup () {
    fixture.remove(testdir)
  }
  
  test('setup', function (t) {
    cleanup()
    setup()
    t.end()
  })
  
  test('installing local package with local dependency', function (t) {
    common.npm(
      ['install'],
      {cwd: cwd},
      function (er, code, stdout, stderr) {
        t.is(code, 0, 'no error code')
        t.is(stderr, '', 'no error output')
        t.ok(fs.existsSync(path.join(cwd, 'node_modules', '2')), 'installed direct dep')
        t.ok(fs.existsSync(path.join(cwd, 'node_modules', '1')), 'installed indirect dep')
        t.end()
      }
    )
  })
  
  test('cleanup', function (t) {
    cleanup()
    t.end()
  })
  