Вы можете использовать:
<script src="moment.js"></script>
<script src="moment-timezone-with-data.js"></script>
// retrieve timezone by name (i.e. "America/Chicago")
moment.tz.guess();
Определение часового пояса браузера довольно сложно, так как информации о браузере мало.
Moment Timezone использует Date.getTimezoneOffset()
и Date.toString()
в течение нескольких минут вокруг текущего года, чтобы собрать как можно больше информации о среде браузера. Затем он сравнивает эту информацию со всеми данными часового пояса и возвращает самое близкое соответствие. В случае связей возвращается часовой пояс с городом с наибольшей численностью населения.
console.log(moment.tz.guess()); // America/Chicago
require('serverless-mysql')
возвращает функцию , которая при каждом вызове возвращает различное значение , поэтому высмеивает свойства результата одного вызова вон ' t влияет на возвращаемое значение другого вызова .
Это означает, что вы должны смоделировать саму функцию, что означает насмешку над всем модулем.
sinon
не предоставляет способ макетировать весь модуль, поэтому вам придется использовать что-то еще для этой части.
Вот рабочий тест с использованием proxyquire
для макета модуля serverless-mysql
:
const chai = require('chai');
const sinon = require('sinon');
const expect = chai.expect;
const proxyquire = require('proxyquire');
const event = {
pathParameters: {
name: 'johndoe'
}
}
var context;
var successConnectionObject = {
connect: function () {
return Promise.resolve();
},
query: function (sqlQuery, params) {
return Promise.resolve([{
first_name: 'first',
last_name: 'last',
bk: 'bk',
current_team: 'team'
}]);
},
end: function () { }
}
const stub = sinon.stub().returns(successConnectionObject);
const app = proxyquire('../../app.js', { 'serverless-mysql': stub });
describe('Tests', function () {
it('verifies successful response', async () => {
const result = await app.lambdaHandler(event, context);
expect(result).to.be.an('object'); // Success!
expect(result.statusCode).to.equal(200); // Success!
sinon.assert.calledWithExactly(stub, {
config: {
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD
}
}); // Success!
});
});