123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- /* global require, chai, describe, before, it */
- // 数据占位符定义(Data Placeholder Definition,DPD)
- var expect = chai.expect
- var Mock, $, _
- describe('DPD', function() {
- before(function(done) {
- require(['mock', 'underscore', 'jquery'], function() {
- Mock = arguments[0]
- _ = arguments[1]
- $ = arguments[2]
- expect(Mock).to.not.equal(undefined)
- expect(_).to.not.equal(undefined)
- expect($).to.not.equal(undefined)
- done()
- })
- })
- describe('Reference', function() {
- it('@EMAIL', function() {
- var data = Mock.mock(this.test.title)
- expect(data).to.not.equal(this.test.title)
- })
- })
- describe('Priority', function() {
- it('@EMAIL', function() {
- var data = Mock.mock({
- email: 'nuysoft@gmail.com',
- name: '@EMAIL'
- })
- this.test.title += ' => ' + data.name
- expect(data.name).to.not.equal(data.email)
- })
- it('@email', function() {
- var data = Mock.mock({
- email: 'nuysoft@gmail.com',
- name: '@email'
- })
- this.test.title += ' => ' + data.name
- expect(data.name).to.equal(data.email)
- })
- })
- describe('Escape', function() {
- it('\@EMAIL', function() {
- var data = Mock.mock(this.test.title)
- this.test.title += ' => ' + data
- expect(data).to.not.equal(this.test.title)
- })
- it('\\@EMAIL', function() {
- var data = Mock.mock(this.test.title)
- this.test.title += ' => ' + data
- expect(data).to.not.equal(this.test.title)
- })
- it('\\\@EMAIL', function() {
- var data = Mock.mock(this.test.title)
- this.test.title += ' => ' + data
- expect(data).to.not.equal(this.test.title)
- })
- it('\\\\@EMAIL', function() {
- var data = Mock.mock(this.test.title)
- this.test.title += ' => ' + data
- expect(data).to.not.equal(this.test.title)
- })
- })
- describe('Path', function() {
- it('Absolute Path', function() {
- var data = Mock.mock({
- id: '@UUID',
- children: [{
- parentId: '@/id'
- }],
- child: {
- parentId: '@/id'
- }
- })
- expect(data.children[0]).to.have.property('parentId', data.id)
- expect(data.child).to.have.property('parentId', data.id)
- })
- it('Relative Path', function() {
- var data = Mock.mock({
- id: '@UUID',
- children: [{
- parentId: '@../../id'
- }],
- child: {
- parentId: '@../id'
- }
- })
- expect(data.children[0]).to.have.property('parentId', data.id)
- expect(data.child).to.have.property('parentId', data.id)
- })
- })
- describe('Complex', function() {
- var tpl = {
- basics: {
- boolean1: '@BOOLEAN',
- boolean2: '@BOOLEAN(1, 9, true)',
- natural1: '@NATURAL',
- natural2: '@NATURAL(10000)',
- natural3: '@NATURAL(60, 100)',
- integer1: '@INTEGER',
- integer2: '@INTEGER(10000)',
- integer3: '@INTEGER(60, 100)',
- float1: '@FLOAT',
- float2: '@FLOAT(0)',
- float3: '@FLOAT(60, 100)',
- float4: '@FLOAT(60, 100, 3)',
- float5: '@FLOAT(60, 100, 3, 5)',
- character1: '@CHARACTER',
- character2: '@CHARACTER("lower")',
- character3: '@CHARACTER("upper")',
- character4: '@CHARACTER("number")',
- character5: '@CHARACTER("symbol")',
- character6: '@CHARACTER("aeiou")',
- string1: '@STRING',
- string2: '@STRING(5)',
- string3: '@STRING("lower",5)',
- string4: '@STRING(7, 10)',
- string5: '@STRING("aeiou", 1, 3)',
- range1: '@RANGE(10)',
- range2: '@RANGE(3, 7)',
- range3: '@RANGE(1, 10, 2)',
- range4: '@RANGE(1, 10, 3)',
- date: '@DATE',
- time: '@TIME',
- datetime1: '@DATETIME',
- datetime2: '@DATETIME("yyyy-MM-dd A HH:mm:ss")',
- datetime3: '@DATETIME("yyyy-MM-dd a HH:mm:ss")',
- datetime4: '@DATETIME("yy-MM-dd HH:mm:ss")',
- datetime5: '@DATETIME("y-MM-dd HH:mm:ss")',
- datetime6: '@DATETIME("y-M-d H:m:s")',
- now: '@NOW',
- nowYear: '@NOW("year")',
- nowMonth: '@NOW("month")',
- nowDay: '@NOW("day")',
- nowHour: '@NOW("hour")',
- nowMinute: '@NOW("minute")',
- nowSecond: '@NOW("second")',
- nowWeek: '@NOW("week")',
- nowCustom: '@NOW("yyyy-MM-dd HH:mm:ss SS")'
- },
- image: {
- image1: '@IMAGE',
- image2: '@IMAGE("100x200", "#000")',
- image3: '@IMAGE("100x200", "#000", "hello")',
- image4: '@IMAGE("100x200", "#000", "#FFF", "hello")',
- image5: '@IMAGE("100x200", "#000", "#FFF", "png", "hello")',
- dataImage1: '@DATAIMAGE',
- dataImage2: '@DATAIMAGE("200x100")',
- dataImage3: '@DATAIMAGE("300x100", "Hello Mock.js!")'
- },
- color: {
- color: '@COLOR',
- render: function() {
- $('.header').css('background', this.color)
- }
- },
- text: {
- title1: '@TITLE',
- title2: '@TITLE(5)',
- title3: '@TITLE(3, 5)',
- word1: '@WORD',
- word2: '@WORD(5)',
- word3: '@WORD(3, 5)',
- sentence1: '@SENTENCE',
- sentence2: '@SENTENCE(5)',
- sentence3: '@SENTENCE(3, 5)',
- paragraph1: '@PARAGRAPH',
- paragraph2: '@PARAGRAPH(2)',
- paragraph3: '@PARAGRAPH(1, 3)'
- },
- name: {
- first: '@FIRST',
- last: '@LAST',
- name1: '@NAME',
- name2: '@NAME(true)'
- },
- web: {
- url: '@URL',
- domain: '@DOMAIN',
- email: '@EMAIL',
- ip: '@IP',
- tld: '@TLD',
- },
- address: {
- region: '@REGION',
- province: '@PROVINCE',
- city: '@CITY',
- county: '@COUNTY'
- },
- miscellaneous: {
- guid: '@GUID',
- id: '@ID',
- 'increment1|3': [
- '@INCREMENT'
- ],
- 'increment2|3': [
- '@INCREMENT(10)'
- ]
- },
- helpers: {
- capitalize1: '@CAPITALIZE()',
- capitalize2: '@CAPITALIZE("hello")',
- upper1: '@UPPER',
- upper2: '@UPPER("hello")',
- lower1: '@LOWER',
- lower2: '@LOWER("HELLO")',
- pick1: '@PICK',
- pick2: '@PICK("abc")',
- pick3: '@PICK(["a", "b", "c"])',
- shuffle1: '@SHUFFLE',
- shuffle2: '@SHUFFLE(["a", "b", "c"])'
- }
- }
- it('', function() {
- var data = Mock.mock(tpl)
- // this.test.title += JSON.stringify(data, null, 4)
- expect(data).to.be.a('object')
- })
- })
- })
|