'use strict';
var fs = require('graceful-fs');
var path = require('path');
var test = require('tap').test;
var rimraf = require('rimraf');
var writeStream = require('../index.js');

var target = path.resolve(__dirname, 'test-chown');

test('chown works', function (t) {
  t.plan(1);
  var stream = writeStream(target, {
    chown: {uid: process.getuid(), gid: process.getgid()},
  });
  var hadError = false;
  stream.on('error', function (er) {
    hadError = true;
    console.log('#', er);
  });
  stream.on('close', function () {
    t.is(hadError, false, 'no errors before close');
  });
  stream.end();
});

test('chown fails', function (t) {
  t.plan(1);
  fs.chown = function (file, uid, gid, cb) {
    cb(new Error('TEST BREAK'));
  };
  var stream = writeStream(target, {
    chown: {uid: process.getuid(), gid: process.getgid()},
  });
  var hadError = false;
  stream.on('error', function (er) {
    hadError = true;
    console.log('#', er);
  });
  stream.on('close', function () {
    t.is(hadError, true, 'error before close');
  });
  stream.end();
});

test('cleanup', function (t) {
  rimraf.sync(target);
  t.end();
});
