Ejemplo n.º 1
0
 it('should production env stdout message include "Egg started"', done => {
   mm.env('prod');
   mm.consoleLevel('NONE');
   mm.home(utils.getFilepath('apps/mock-production-app/config'));
   app = utils.cluster('apps/mock-production-app', { coverage: true });
   app.expect('stdout', /Egg started/).ready(done);
 });
Ejemplo n.º 2
0
 before(() => {
   mm.env('local');
   app = utils.cluster('apps/reload-worker');
   app.debug();
   app.coverage(false);
   return app.ready();
 });
Ejemplo n.º 3
0
 before(() => {
   mm.env('local');
   app = mm.cluster({
     baseDir: 'custom',
   });
   app.debug();
   return app.ready();
 });
Ejemplo n.º 4
0
 before(() => {
   mm.env('local');
   mm.consoleLevel('NONE');
   app = mm.app({
     baseDir: 'onerror-ctx-error',
   });
   return app.ready();
 });
Ejemplo n.º 5
0
    it('should use exists keys', async () => {
      mm.env('unittest');
      app = utils.app('apps/keys-exists');
      await app.ready();

      assert(app.keys);
      assert(app.keys);
      assert(app.config.keys === 'my keys');

      await app.close();
    });
Ejemplo n.º 6
0
  it('should set EGG_LOG level on local env', async () => {
    mm.env('local');
    mm(process.env, 'EGG_LOG', 'ERROR');
    app = utils.app('apps/mock-dev-app');
    await app.ready();

    assert(app.logger.get('file').options.level === Logger.INFO);
    assert(app.logger.get('console').options.level === Logger.ERROR);
    assert(app.coreLogger.get('file').options.level === Logger.INFO);
    assert(app.coreLogger.get('console').options.level === Logger.ERROR);
    assert(app.config.logger.disableConsoleAfterReady === false);
  });
Ejemplo n.º 7
0
  it('should got right config on unittest env', async () => {
    mm.env('unittest');
    mm(process.env, 'EGG_LOG', '');
    app = utils.app('apps/mock-dev-app');
    await app.ready();

    assert(app.logger.get('file').options.level === Logger.INFO);
    assert(app.logger.get('console').options.level === Logger.WARN);
    assert(app.coreLogger.get('file').options.level === Logger.INFO);
    assert(app.coreLogger.get('console').options.level === Logger.WARN);
    assert(app.config.logger.disableConsoleAfterReady === false);
  });
Ejemplo n.º 8
0
 it('should still output to console after app ready on local env', done => {
   mm.env('local');
   app = utils.cluster('apps/logger');
   app
   // .debug()
     .coverage(false)
     .expect('stdout', /agent info/)
     .expect('stdout', /app info/)
     .expect('stdout', /app info after ready/)
     .expect('stderr', /nodejs.Error: agent error/)
     .expect('stderr', /nodejs.Error: app error/)
     .end(done);
 });
Ejemplo n.º 9
0
 it('dont output to console after app ready', done => {
   mm.env('default');
   app = utils.cluster('apps/logger');
   app
     .debug(false)
     .coverage(false)
     .expect('stdout', /agent info/)
     .expect('stdout', /app info/)
     .notExpect('stdout', /app info after ready/)
     .expect('stderr', /nodejs.Error: agent error/)
     .expect('stderr', /nodejs.Error: app error/)
     .end(done);
 });
Ejemplo n.º 10
0
  it('should got right level on prod env when set allowDebugAtProd to false', async () => {
    mm.env('prod');
    mm(process.env, 'EGG_LOG', '');
    mm(process.env, 'HOME', utils.getFilepath('apps/mock-production-app-do-not-force/config'));
    app = utils.app('apps/mock-production-app-do-not-force');
    await app.ready();

    assert(app.config.logger.allowDebugAtProd === false);

    assert(app.logger.get('file').options.level === Logger.DEBUG);
    assert(app.logger.get('console').options.level === Logger.INFO);
    assert(app.coreLogger.get('file').options.level === Logger.DEBUG);
    assert(app.coreLogger.get('console').options.level === Logger.INFO);
  });
Ejemplo n.º 11
0
  it('should got right default config on prod env', async () => {
    mm.env('prod');
    mm(process.env, 'EGG_LOG', '');
    mm(process.env, 'HOME', utils.getFilepath('apps/mock-production-app/config'));
    app = utils.app('apps/mock-production-app');
    await app.ready();

    // 生产环境默认 _level = info
    assert(app.logger.get('file').options.level === Logger.INFO);
    // stdout 默认 INFO
    assert(app.logger.get('console').options.level === Logger.INFO);
    assert(app.coreLogger.get('file').options.level === Logger.INFO);
    assert(app.coreLogger.get('console').options.level === Logger.INFO);
    assert(app.config.logger.disableConsoleAfterReady === true);
  });
Ejemplo n.º 12
0
  it('output .json format log', async () => {
    mm(process.env, 'EGG_LOG', 'none');
    mm.env('local');
    app = utils.app('apps/logger-output-json');
    await app.ready();

    const ctx = app.mockContext();
    const logfile = path.join(app.config.logger.dir, 'logger-output-json-web.json.log');
    ctx.logger.info('json format');

    await sleep(1000);

    assert(fs.existsSync(logfile));
    assert(fs.readFileSync(logfile, 'utf8').includes('"message":"json format"'));
  });
Ejemplo n.º 13
0
    it('should throw when config.keys missing on local env', async () => {
      mm.env('local');
      app = utils.app('apps/keys-missing');
      await app.ready();
      mm(app.config, 'keys', null);

      try {
        app.keys;
        throw new Error('should not run this');
      } catch (err) {
        assert(err.message === 'Please set config.keys first');
      }

      // make sure app close
      await app.close();
    });
Ejemplo n.º 14
0
  it('log buffer enable cache on non-local and non-unittest env', async () => {
    mm(process.env, 'EGG_LOG', 'none');
    mm.env('prod');
    mm(process.env, 'HOME', utils.getFilepath('apps/mock-production-app/config'));
    app = utils.app('apps/mock-production-app');
    await app.ready();

    assert(app.config.logger.disableConsoleAfterReady === true);
    const ctx = app.mockContext();
    const logfile = path.join(app.config.logger.dir, 'common-error.log');
    // app.config.logger.buffer.should.equal(true);
    ctx.logger.error(new Error('mock enable buffer error'));

    await sleep(1000);

    assert(fs.readFileSync(logfile, 'utf8').includes(''));
  });
Ejemplo n.º 15
0
 it('agent and app error should output to common-error.log', done => {
   const baseDir = utils.getFilepath('apps/logger');
   mm.env('default');
   mm(process.env, 'EGG_LOG', 'none');
   mm(process.env, 'EGG_HOME', baseDir);
   app = utils.cluster('apps/logger');
   app
   // .debug()
     .coverage(false)
     .end(err => {
       assert(!err);
       const content = fs.readFileSync(path.join(baseDir, 'logs/logger/common-error.log'), 'utf8');
       assert(content.includes('nodejs.Error: agent error'));
       assert(content.includes('nodejs.Error: app error'));
       done();
     });
 });
Ejemplo n.º 16
0
 before(() => {
   mm.env('local');
   mm(process.env, 'EGG_LOG', 'none');
   app = utils.app('apps/development');
   return app.ready();
 });
Ejemplo n.º 17
0
 before(() => {
   mm.env('prod');
   mm.home(utils.getFilepath('apps/custom-env-app'));
   app = utils.cluster('apps/custom-env-app');
   return app.ready();
 });
Ejemplo n.º 18
0
 before(() => {
   mm.env('default');
   app = utils.cluster('apps/app-die');
   app.coverage(false);
   return app.ready();
 });
Ejemplo n.º 19
0
 before(() => {
   mock.env('local');
   app = mock.app();
   return app.ready();
 });