264 lines
6.1 KiB
JavaScript
264 lines
6.1 KiB
JavaScript
const auth = require('../lib/Auth');
|
|
const Config = require('../lib/Config');
|
|
const rest = require('../lib/rest');
|
|
const InstallationsRouter = require('../lib/Routers/InstallationsRouter')
|
|
.InstallationsRouter;
|
|
|
|
describe('InstallationsRouter', () => {
|
|
it('uses find condition from request.body', done => {
|
|
const config = Config.get('test');
|
|
const androidDeviceRequest = {
|
|
installationId: '12345678-abcd-abcd-abcd-123456789abc',
|
|
deviceType: 'android',
|
|
};
|
|
const iosDeviceRequest = {
|
|
installationId: '12345678-abcd-abcd-abcd-123456789abd',
|
|
deviceType: 'ios',
|
|
};
|
|
const request = {
|
|
config: config,
|
|
auth: auth.master(config),
|
|
body: {
|
|
where: {
|
|
deviceType: 'android',
|
|
},
|
|
},
|
|
query: {},
|
|
info: {},
|
|
};
|
|
|
|
const router = new InstallationsRouter();
|
|
rest
|
|
.create(
|
|
config,
|
|
auth.nobody(config),
|
|
'_Installation',
|
|
androidDeviceRequest
|
|
)
|
|
.then(() => {
|
|
return rest.create(
|
|
config,
|
|
auth.nobody(config),
|
|
'_Installation',
|
|
iosDeviceRequest
|
|
);
|
|
})
|
|
.then(() => {
|
|
return router.handleFind(request);
|
|
})
|
|
.then(res => {
|
|
const results = res.response.results;
|
|
expect(results.length).toEqual(1);
|
|
done();
|
|
})
|
|
.catch(err => {
|
|
fail(JSON.stringify(err));
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('uses find condition from request.query', done => {
|
|
const config = Config.get('test');
|
|
const androidDeviceRequest = {
|
|
installationId: '12345678-abcd-abcd-abcd-123456789abc',
|
|
deviceType: 'android',
|
|
};
|
|
const iosDeviceRequest = {
|
|
installationId: '12345678-abcd-abcd-abcd-123456789abd',
|
|
deviceType: 'ios',
|
|
};
|
|
const request = {
|
|
config: config,
|
|
auth: auth.master(config),
|
|
body: {},
|
|
query: {
|
|
where: {
|
|
deviceType: 'android',
|
|
},
|
|
},
|
|
info: {},
|
|
};
|
|
|
|
const router = new InstallationsRouter();
|
|
rest
|
|
.create(
|
|
config,
|
|
auth.nobody(config),
|
|
'_Installation',
|
|
androidDeviceRequest
|
|
)
|
|
.then(() => {
|
|
return rest.create(
|
|
config,
|
|
auth.nobody(config),
|
|
'_Installation',
|
|
iosDeviceRequest
|
|
);
|
|
})
|
|
.then(() => {
|
|
return router.handleFind(request);
|
|
})
|
|
.then(res => {
|
|
const results = res.response.results;
|
|
expect(results.length).toEqual(1);
|
|
done();
|
|
})
|
|
.catch(err => {
|
|
jfail(err);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('query installations with limit = 0', done => {
|
|
const config = Config.get('test');
|
|
const androidDeviceRequest = {
|
|
installationId: '12345678-abcd-abcd-abcd-123456789abc',
|
|
deviceType: 'android',
|
|
};
|
|
const iosDeviceRequest = {
|
|
installationId: '12345678-abcd-abcd-abcd-123456789abd',
|
|
deviceType: 'ios',
|
|
};
|
|
const request = {
|
|
config: config,
|
|
auth: auth.master(config),
|
|
body: {},
|
|
query: {
|
|
limit: 0,
|
|
},
|
|
info: {},
|
|
};
|
|
|
|
Config.get('test');
|
|
const router = new InstallationsRouter();
|
|
rest
|
|
.create(
|
|
config,
|
|
auth.nobody(config),
|
|
'_Installation',
|
|
androidDeviceRequest
|
|
)
|
|
.then(() => {
|
|
return rest.create(
|
|
config,
|
|
auth.nobody(config),
|
|
'_Installation',
|
|
iosDeviceRequest
|
|
);
|
|
})
|
|
.then(() => {
|
|
return router.handleFind(request);
|
|
})
|
|
.then(res => {
|
|
const response = res.response;
|
|
expect(response.results.length).toEqual(0);
|
|
done();
|
|
})
|
|
.catch(err => {
|
|
fail(JSON.stringify(err));
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('query installations with count = 1', done => {
|
|
const config = Config.get('test');
|
|
const androidDeviceRequest = {
|
|
installationId: '12345678-abcd-abcd-abcd-123456789abc',
|
|
deviceType: 'android',
|
|
};
|
|
const iosDeviceRequest = {
|
|
installationId: '12345678-abcd-abcd-abcd-123456789abd',
|
|
deviceType: 'ios',
|
|
};
|
|
const request = {
|
|
config: config,
|
|
auth: auth.master(config),
|
|
body: {},
|
|
query: {
|
|
count: 1,
|
|
},
|
|
info: {},
|
|
};
|
|
|
|
const router = new InstallationsRouter();
|
|
rest
|
|
.create(
|
|
config,
|
|
auth.nobody(config),
|
|
'_Installation',
|
|
androidDeviceRequest
|
|
)
|
|
.then(() =>
|
|
rest.create(
|
|
config,
|
|
auth.nobody(config),
|
|
'_Installation',
|
|
iosDeviceRequest
|
|
)
|
|
)
|
|
.then(() => router.handleFind(request))
|
|
.then(res => {
|
|
const response = res.response;
|
|
expect(response.results.length).toEqual(2);
|
|
expect(response.count).toEqual(2);
|
|
done();
|
|
})
|
|
.catch(error => {
|
|
fail(JSON.stringify(error));
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('query installations with limit = 0 and count = 1', done => {
|
|
const config = Config.get('test');
|
|
const androidDeviceRequest = {
|
|
installationId: '12345678-abcd-abcd-abcd-123456789abc',
|
|
deviceType: 'android',
|
|
};
|
|
const iosDeviceRequest = {
|
|
installationId: '12345678-abcd-abcd-abcd-123456789abd',
|
|
deviceType: 'ios',
|
|
};
|
|
const request = {
|
|
config: config,
|
|
auth: auth.master(config),
|
|
body: {},
|
|
query: {
|
|
limit: 0,
|
|
count: 1,
|
|
},
|
|
info: {},
|
|
};
|
|
|
|
const router = new InstallationsRouter();
|
|
rest
|
|
.create(
|
|
config,
|
|
auth.nobody(config),
|
|
'_Installation',
|
|
androidDeviceRequest
|
|
)
|
|
.then(() => {
|
|
return rest.create(
|
|
config,
|
|
auth.nobody(config),
|
|
'_Installation',
|
|
iosDeviceRequest
|
|
);
|
|
})
|
|
.then(() => {
|
|
return router.handleFind(request);
|
|
})
|
|
.then(res => {
|
|
const response = res.response;
|
|
expect(response.results.length).toEqual(0);
|
|
expect(response.count).toEqual(2);
|
|
done();
|
|
})
|
|
.catch(err => {
|
|
fail(JSON.stringify(err));
|
|
done();
|
|
});
|
|
});
|
|
});
|