qiprofile
Version:
Quantitative Imaging Profile ( QiPr) web application
65 lines (58 loc) • 2.11 kB
text/coffeescript
# The Session unit test.
#
# Note: image load cannot be unit-tested, since it requires an
# active browser.
define ['ngmocks', 'lodash', 'expect', 'moment', 'session', 'helpers'],
(ng, _, expect, moment) ->
# The mock objects.
# Note: the scan REST object number is fetched as a string
# and transformed to a number by Scan.extend.
mock =
session:
title: 'Breast Patient 1 Session 1'
scans: [
_cls: 'Scan'
number: '1'
protocol: 'sp1'
time_series:
name: 'scan_ts'
image: 'scan_ts.nii.gz'
volumes:
name: 'NIFTI'
images: [
name: 'volume001.nii.gz'
average_intensity: 2.4
]
registrations: []
]
describe 'Unit Testing the Scan Service', ->
Scan = null
scan = null
session = null
beforeEach ->
# Fake the session service module.
ng.module('qiprofile.scan')
inject ['Scan', (_Scan_) ->
Scan = _Scan_
]
session = _.cloneDeep(mock.session)
scan = session.scans[0]
# Extend the test scan.
Scan.extend(scan, session)
describe 'find', ->
it 'should find the session scan', ->
target = Scan.find(session, 1)
expect(target, "The target was not found").to.exist
expect(target, "The target is incorrect").to.equal(scan)
describe 'extend', ->
it 'should reference the parent session', ->
expect(scan.session, "The scan is missing the session reference")
.to.exist
expect(scan.session, "The scan session reference is incorrect")
.to.equal(session)
it 'should convert the number to an integer', ->
expect(scan.number, "The scan number is incorrect").to.equal(1)
it 'should have a virtual title property', ->
expect(scan.title, "The scan title is missing").to.exist
expect(scan.title, "The scan title is incorrect")
.to.equal('Breast Patient 1 Session 1 Scan 1')