@@ -251,6 +278,9 @@ describe('tests for "closet" module', () => {
`;
const removeFromCloset = require(modulePath).removeFromCloset;
+ await removeFromCloset(1);
+ expect(fetch).not.toBeCalled();
+
await removeFromCloset(1);
expect(swal).toBeCalledWith({
text: 'user.removeFromClosetNotice',
@@ -263,22 +293,30 @@ describe('tests for "closet" module', () => {
dataType: 'json',
data: { tid: 1 }
});
-
- await removeFromCloset(1);
expect(swal).toBeCalledWith({ type: 'success', html: 'success' });
expect(document.getElementById('shouldBeRemoved')).toBeNull();
expect(trans).toBeCalledWith('user.emptyClosetMsg', { url: url('skinlib?filter=skin') });
expect($('#skin-category').html()).toBe(
'
'
);
+
+ await removeFromCloset(1);
+ expect(toastr.warning).toBeCalledWith('warning');
+
+ await removeFromCloset(1);
+ expect(showAjaxError).toBeCalled();
});
it('set avatar', async () => {
const fetch = jest.fn()
- .mockReturnValue(Promise.resolve({ errno: 0, msg: 'success' }));
+ .mockReturnValueOnce(Promise.resolve({ errno: 0, msg: 'success' }))
+ .mockReturnValueOnce(Promise.resolve({ errno: 1, msg: 'warning' }))
+ .mockReturnValueOnce(Promise.reject());
const trans = jest.fn(key => key);
const url = jest.fn(path => path);
- const swal = jest.fn().mockReturnValue(Promise.resolve());
+ const swal = jest.fn()
+ .mockReturnValueOnce(Promise.reject())
+ .mockReturnValueOnce(Promise.resolve());
const toastr = {
success: jest.fn(),
warning: jest.fn()
@@ -287,18 +325,22 @@ describe('tests for "closet" module', () => {
changeSkin: jest.fn(),
changeCape: jest.fn()
};
+ const showAjaxError = jest.fn();
window.fetch = fetch;
window.trans = trans;
window.url = url;
window.swal = swal;
window.toastr = toastr;
- window.showAjaxError = jest.fn();
+ window.showAjaxError = showAjaxError;
document.body.innerHTML = `
`;
const setAsAvatar = require(modulePath).setAsAvatar;
+ await setAsAvatar(1);
+ expect(fetch).not.toBeCalled();
+
await setAsAvatar(1);
expect(swal).toBeCalledWith({
title: 'user.setAvatar',
@@ -312,10 +354,14 @@ describe('tests for "closet" module', () => {
dataType: 'json',
data: { tid: 1 }
});
-
- await setAsAvatar(1);
expect(toastr.success).toBeCalledWith('success');
expect($('img').attr('src').endsWith('src')).toBe(false);
+
+ await setAsAvatar(1);
+ expect(toastr.warning).toBeCalledWith('warning');
+
+ await setAsAvatar(1);
+ expect(showAjaxError).toBeCalled();
});
});
@@ -325,27 +371,32 @@ describe('tests for "player" module', () => {
it('show player texture preview', async () => {
const url = jest.fn(path => path);
const fetch = jest.fn()
- .mockReturnValue(Promise.resolve({
+ .mockReturnValueOnce(Promise.resolve({
tid_steve: 1,
tid_alex: 2,
tid_cape: 3,
- preference: 'steve',
+ preference: 'default',
player_name: 'name'
- }));
- window.url = url;
- window.fetch = fetch;
- window.showAjaxError = jest.fn();
- window.TexturePreview = require('../common/texture-preview');
- window.MSP = {
+ }))
+ .mockReturnValueOnce(Promise.reject());
+ const showAjaxError = jest.fn();
+ const MSP = {
changeSkin: jest.fn(),
changeCape: jest.fn(),
setStatus: jest.fn(),
getStatus: jest.fn()
};
+ window.url = url;
+ window.fetch = fetch;
+ window.showAjaxError = showAjaxError;
+ window.TexturePreview = require('../common/texture-preview');
+ window.MSP = MSP;
+ window.defaultSkin = 'steve_base64';
document.body.innerHTML = `
`;
require(modulePath);
@@ -358,21 +409,29 @@ describe('tests for "player" module', () => {
dataType: 'json',
data: { pid: '2' }
});
+
+ await $('#2').click();
+ expect(showAjaxError).toBeCalled();
+
+ $('#preview-switch').click();
+ expect(window.TexturePreview.previewType).toBe('2D');
});
- it('change player reference', async () => {
+ it('change player preference', async () => {
const fetch = jest.fn()
.mockReturnValueOnce(Promise.resolve({ errno: 0, msg: 'success' }))
- .mockReturnValueOnce(Promise.resolve({ errno: 1, msg: 'warning' }));
+ .mockReturnValueOnce(Promise.resolve({ errno: 1, msg: 'warning' }))
+ .mockReturnValueOnce(Promise.reject());
const url = jest.fn(path => path);
const toastr = {
success: jest.fn(),
warning: jest.fn()
};
+ const showAjaxError = jest.fn();
window.fetch = fetch;
window.url = url;
window.toastr = toastr;
- window.showAjaxError = jest.fn();
+ window.showAjaxError = showAjaxError;
document.body.innerHTML = `