⌈⌋ ⎇ branch:  Bitrhythm


Hex Artifact Content

Artifact 76944ecc1f62dfe4add74e90a9b625ee5e0450dd989a8d4fc1e9de5dabddfc6a:


0000: 63 6f 6e 73 74 20 73 61 75 63 65 6c 61 62 73 42  const saucelabsB
0010: 72 6f 77 73 65 72 73 20 3d 20 72 65 71 75 69 72  rowsers = requir
0020: 65 28 27 2e 2f 73 61 75 63 65 6c 61 62 73 2d 62  e('./saucelabs-b
0030: 72 6f 77 73 65 72 73 27 29 2e 62 72 6f 77 73 65  rowsers').browse
0040: 72 73 2c 0a 20 20 52 49 4f 54 5f 57 49 54 48 5f  rs,.  RIOT_WITH_
0050: 43 4f 4d 50 49 4c 45 52 5f 50 41 54 48 20 3d 20  COMPILER_PATH = 
0060: 27 2e 2e 2f 64 69 73 74 2f 72 69 6f 74 2f 72 69  '../dist/riot/ri
0070: 6f 74 2b 63 6f 6d 70 69 6c 65 72 2e 6a 73 27 2c  ot+compiler.js',
0080: 0a 20 20 52 49 4f 54 5f 50 41 54 48 20 3d 20 27  .  RIOT_PATH = '
0090: 2e 2e 2f 64 69 73 74 2f 72 69 6f 74 2f 72 69 6f  ../dist/riot/rio
00a0: 74 2e 6a 73 27 2c 0a 20 20 69 73 44 65 62 75 67  t.js',.  isDebug
00b0: 20 3d 20 70 72 6f 63 65 73 73 2e 65 6e 76 2e 44   = process.env.D
00c0: 45 42 55 47 2c 0a 20 20 69 73 53 61 75 63 65 6c  EBUG,.  isSaucel
00d0: 61 62 73 20 3d 20 70 72 6f 63 65 73 73 2e 65 6e  abs = process.en
00e0: 76 2e 53 41 55 43 45 4c 41 42 53 2c 0a 20 20 69  v.SAUCELABS,.  i
00f0: 73 54 72 61 76 69 73 20 3d 20 21 21 70 72 6f 63  sTravis = !!proc
0100: 65 73 73 2e 65 6e 76 2e 54 52 41 56 49 53 5f 42  ess.env.TRAVIS_B
0110: 55 49 4c 44 5f 4e 55 4d 42 45 52 2c 0a 20 20 2f  UILD_NUMBER,.  /
0120: 2f 20 73 70 6c 69 74 20 74 68 65 20 72 69 6f 74  / split the riot
0130: 2b 63 6f 6d 70 69 6c 65 72 20 74 65 73 74 73 20  +compiler tests 
0140: 66 72 6f 6d 20 74 68 65 20 6e 6f 72 6d 61 6c 20  from the normal 
0150: 72 69 6f 74 20 63 6f 72 65 20 74 65 73 74 73 0a  riot core tests.
0160: 20 20 74 65 73 74 73 53 65 74 75 70 20 3d 20 27    testsSetup = '
0170: 2e 2f 73 70 65 63 73 2f 62 72 6f 77 73 65 72 2f  ./specs/browser/
0180: 69 6e 64 65 78 2e 6a 73 27 2c 0a 20 20 74 65 73  index.js',.  tes
0190: 74 46 69 6c 65 73 20 3d 20 60 2e 2f 73 70 65 63  tFiles = `./spec
01a0: 73 2f 24 7b 70 72 6f 63 65 73 73 2e 65 6e 76 2e  s/${process.env.
01b0: 54 45 53 54 5f 46 4f 4c 44 45 52 7d 2f 2a 2a 2f  TEST_FOLDER}/**/
01c0: 2a 2e 73 70 65 63 2e 6a 73 60 2c 0a 20 20 6e 65  *.spec.js`,.  ne
01d0: 65 64 73 43 6f 6d 70 69 6c 65 72 20 3d 20 2f 63  edsCompiler = /c
01e0: 6f 6d 70 69 6c 65 72 2f 2e 74 65 73 74 28 70 72  ompiler/.test(pr
01f0: 6f 63 65 73 73 2e 65 6e 76 2e 54 45 53 54 5f 46  ocess.env.TEST_F
0200: 4f 4c 44 45 52 29 2c 0a 20 20 70 72 65 70 72 6f  OLDER),.  prepro
0210: 63 65 73 73 6f 72 73 20 3d 20 7b 7d 2c 0a 20 20  cessors = {},.  
0220: 62 72 6f 77 73 65 72 73 20 3d 20 69 73 53 61 75  browsers = isSau
0230: 63 65 6c 61 62 73 20 3f 20 4f 62 6a 65 63 74 2e  celabs ? Object.
0240: 6b 65 79 73 28 73 61 75 63 65 6c 61 62 73 42 72  keys(saucelabsBr
0250: 6f 77 73 65 72 73 29 20 3a 20 5b 27 43 68 72 6f  owsers) : ['Chro
0260: 6d 65 48 65 61 64 6c 65 73 73 4e 6f 53 61 6e 64  meHeadlessNoSand
0270: 62 6f 78 27 5d 0a 0a 6d 6f 64 75 6c 65 2e 65 78  box']..module.ex
0280: 70 6f 72 74 73 20 3d 20 66 75 6e 63 74 69 6f 6e  ports = function
0290: 28 63 6f 6e 66 29 20 7b 0a 20 20 70 72 65 70 72  (conf) {.  prepr
02a0: 6f 63 65 73 73 6f 72 73 5b 74 65 73 74 46 69 6c  ocessors[testFil
02b0: 65 73 5d 20 3d 20 5b 27 72 6f 6c 6c 75 70 27 5d  es] = ['rollup']
02c0: 0a 20 20 2f 2f 20 65 6e 61 62 6c 65 20 74 68 65  .  // enable the
02d0: 20 63 6f 76 65 72 61 67 65 20 66 6f 72 20 72 69   coverage for ri
02e0: 6f 74 2e 6a 73 0a 20 20 69 66 20 28 21 6e 65 65  ot.js.  if (!nee
02f0: 64 73 43 6f 6d 70 69 6c 65 72 20 26 26 20 21 69  dsCompiler && !i
0300: 73 44 65 62 75 67 29 20 70 72 65 70 72 6f 63 65  sDebug) preproce
0310: 73 73 6f 72 73 5b 52 49 4f 54 5f 50 41 54 48 5d  ssors[RIOT_PATH]
0320: 20 3d 20 5b 27 63 6f 76 65 72 61 67 65 27 5d 0a   = ['coverage'].
0330: 0a 20 20 63 6f 6e 66 2e 73 65 74 28 7b 0a 20 20  .  conf.set({.  
0340: 20 20 62 61 73 65 50 61 74 68 3a 20 27 27 2c 0a    basePath: '',.
0350: 20 20 20 20 61 75 74 6f 57 61 74 63 68 3a 20 74      autoWatch: t
0360: 72 75 65 2c 0a 20 20 20 20 66 72 61 6d 65 77 6f  rue,.    framewo
0370: 72 6b 73 3a 20 5b 27 6d 6f 63 68 61 27 5d 2c 0a  rks: ['mocha'],.
0380: 20 20 20 20 70 72 6f 78 69 65 73 3a 20 7b 0a 20      proxies: {. 
0390: 20 20 20 20 20 27 2f 74 61 67 2f 27 3a 20 27 2f       '/tag/': '/
03a0: 62 61 73 65 2f 74 61 67 2f 27 0a 20 20 20 20 7d  base/tag/'.    }
03b0: 2c 0a 20 20 20 20 66 69 6c 65 73 3a 20 5b 0a 20  ,.    files: [. 
03c0: 20 20 20 20 20 27 2e 2f 68 65 6c 70 65 72 73 2f       './helpers/
03d0: 70 6f 6c 79 66 69 6c 6c 73 2e 6a 73 27 2c 0a 20  polyfills.js',. 
03e0: 20 20 20 20 20 27 2e 2e 2f 6e 6f 64 65 5f 6d 6f       '../node_mo
03f0: 64 75 6c 65 73 2f 63 68 61 69 2f 63 68 61 69 2e  dules/chai/chai.
0400: 6a 73 27 2c 0a 20 20 20 20 20 20 27 2e 2e 2f 6e  js',.      '../n
0410: 6f 64 65 5f 6d 6f 64 75 6c 65 73 2f 73 69 6e 6f  ode_modules/sino
0420: 6e 2f 70 6b 67 2f 73 69 6e 6f 6e 2e 6a 73 27 2c  n/pkg/sinon.js',
0430: 0a 20 20 20 20 20 20 27 2e 2e 2f 6e 6f 64 65 5f  .      '../node_
0440: 6d 6f 64 75 6c 65 73 2f 73 69 6e 6f 6e 2d 63 68  modules/sinon-ch
0450: 61 69 2f 6c 69 62 2f 73 69 6e 6f 6e 2d 63 68 61  ai/lib/sinon-cha
0460: 69 2e 6a 73 27 2c 0a 20 20 20 20 20 20 7b 0a 20  i.js',.      {. 
0470: 20 20 20 20 20 20 20 70 61 74 74 65 72 6e 3a 20         pattern: 
0480: 27 74 61 67 2f 2a 2e 74 61 67 27 2c 0a 20 20 20  'tag/*.tag',.   
0490: 20 20 20 20 20 73 65 72 76 65 64 3a 20 74 72 75       served: tru
04a0: 65 2c 0a 20 20 20 20 20 20 20 20 69 6e 63 6c 75  e,.        inclu
04b0: 64 65 64 3a 20 66 61 6c 73 65 0a 20 20 20 20 20  ded: false.     
04c0: 20 7d 2c 0a 20 20 20 20 20 20 6e 65 65 64 73 43   },.      needsC
04d0: 6f 6d 70 69 6c 65 72 20 3f 20 52 49 4f 54 5f 57  ompiler ? RIOT_W
04e0: 49 54 48 5f 43 4f 4d 50 49 4c 45 52 5f 50 41 54  ITH_COMPILER_PAT
04f0: 48 20 3a 20 52 49 4f 54 5f 50 41 54 48 2c 0a 20  H : RIOT_PATH,. 
0500: 20 20 20 20 20 74 65 73 74 73 53 65 74 75 70 2c       testsSetup,
0510: 0a 20 20 20 20 20 20 74 65 73 74 46 69 6c 65 73  .      testFiles
0520: 0a 20 20 20 20 5d 2c 0a 20 20 20 20 73 61 75 63  .    ],.    sauc
0530: 65 4c 61 62 73 3a 20 7b 0a 20 20 20 20 20 20 62  eLabs: {.      b
0540: 75 69 6c 64 3a 20 27 54 52 41 56 49 53 20 23 27  uild: 'TRAVIS #'
0550: 20 2b 20 70 72 6f 63 65 73 73 2e 65 6e 76 2e 54   + process.env.T
0560: 52 41 56 49 53 5f 42 55 49 4c 44 5f 4e 55 4d 42  RAVIS_BUILD_NUMB
0570: 45 52 20 2b 20 27 20 28 27 20 2b 20 70 72 6f 63  ER + ' (' + proc
0580: 65 73 73 2e 65 6e 76 2e 54 52 41 56 49 53 5f 42  ess.env.TRAVIS_B
0590: 55 49 4c 44 5f 49 44 20 2b 20 27 29 27 2c 0a 20  UILD_ID + ')',. 
05a0: 20 20 20 20 20 74 75 6e 6e 65 6c 49 64 65 6e 74       tunnelIdent
05b0: 69 66 69 65 72 3a 20 70 72 6f 63 65 73 73 2e 65  ifier: process.e
05c0: 6e 76 2e 54 52 41 56 49 53 5f 4a 4f 42 5f 4e 55  nv.TRAVIS_JOB_NU
05d0: 4d 42 45 52 2c 0a 20 20 20 20 20 20 74 65 73 74  MBER,.      test
05e0: 4e 61 6d 65 3a 20 60 72 69 6f 74 6a 73 24 7b 20  Name: `riotjs${ 
05f0: 6e 65 65 64 73 43 6f 6d 70 69 6c 65 72 20 3f 20  needsCompiler ? 
0600: 27 2b 63 6f 6d 70 69 6c 65 72 27 20 3a 20 27 27  '+compiler' : ''
0610: 7d 60 2c 0a 20 20 20 20 7d 2c 0a 20 20 20 20 63  }`,.    },.    c
0620: 61 70 74 75 72 65 54 69 6d 65 6f 75 74 3a 20 33  aptureTimeout: 3
0630: 30 30 30 30 30 2c 0a 20 20 20 20 62 72 6f 77 73  00000,.    brows
0640: 65 72 4e 6f 41 63 74 69 76 69 74 79 54 69 6d 65  erNoActivityTime
0650: 6f 75 74 3a 20 33 30 30 30 30 30 2c 0a 20 20 20  out: 300000,.   
0660: 20 62 72 6f 77 73 65 72 44 69 73 63 6f 6e 6e 65   browserDisconne
0670: 63 74 54 6f 6c 65 72 61 6e 63 65 3a 20 32 2c 0a  ctTolerance: 2,.
0680: 20 20 20 20 63 75 73 74 6f 6d 4c 61 75 6e 63 68      customLaunch
0690: 65 72 73 3a 20 4f 62 6a 65 63 74 2e 61 73 73 69  ers: Object.assi
06a0: 67 6e 28 0a 20 20 20 20 20 20 7b 0a 20 20 20 20  gn(.      {.    
06b0: 20 20 20 20 43 68 72 6f 6d 65 48 65 61 64 6c 65      ChromeHeadle
06c0: 73 73 4e 6f 53 61 6e 64 62 6f 78 3a 20 7b 0a 20  ssNoSandbox: {. 
06d0: 20 20 20 20 20 20 20 20 20 62 61 73 65 3a 20 27           base: '
06e0: 43 68 72 6f 6d 65 48 65 61 64 6c 65 73 73 27 2c  ChromeHeadless',
06f0: 0a 20 20 20 20 20 20 20 20 20 20 66 6c 61 67 73  .          flags
0700: 3a 20 5b 27 2d 2d 6e 6f 2d 73 61 6e 64 62 6f 78  : ['--no-sandbox
0710: 27 5d 2c 0a 20 20 20 20 20 20 20 20 7d 0a 20 20  '],.        }.  
0720: 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 73 61 75      },.      sau
0730: 63 65 6c 61 62 73 42 72 6f 77 73 65 72 73 0a 20  celabsBrowsers. 
0740: 20 20 20 29 2c 0a 20 20 20 20 62 72 6f 77 73 65     ),.    browse
0750: 72 73 3a 20 62 72 6f 77 73 65 72 73 2c 0a 0a 20  rs: browsers,.. 
0760: 20 20 20 72 65 70 6f 72 74 65 72 73 3a 20 5b 27     reporters: ['
0770: 73 61 75 63 65 6c 61 62 73 27 5d 0a 20 20 20 20  saucelabs'].    
0780: 20 20 2e 63 6f 6e 63 61 74 28 69 73 53 61 75 63    .concat(isSauc
0790: 65 6c 61 62 73 20 3f 20 5b 5d 20 3a 20 5b 27 63  elabs ? [] : ['c
07a0: 6f 76 65 72 61 67 65 27 5d 29 0a 20 20 20 20 20  overage']).     
07b0: 20 2e 63 6f 6e 63 61 74 28 69 73 54 72 61 76 69   .concat(isTravi
07c0: 73 20 3f 20 5b 5d 20 3a 20 27 70 72 6f 67 72 65  s ? [] : 'progre
07d0: 73 73 27 29 2c 0a 0a 20 20 20 20 70 72 65 70 72  ss'),..    prepr
07e0: 6f 63 65 73 73 6f 72 73 3a 20 70 72 65 70 72 6f  ocessors: prepro
07f0: 63 65 73 73 6f 72 73 2c 0a 0a 20 20 20 20 72 6f  cessors,..    ro
0800: 6c 6c 75 70 50 72 65 70 72 6f 63 65 73 73 6f 72  llupPreprocessor
0810: 3a 20 7b 0a 20 20 20 20 20 20 2f 2f 20 75 73 65  : {.      // use
0820: 20 6f 75 72 20 64 65 66 61 75 6c 74 20 72 6f 6c   our default rol
0830: 6c 75 70 20 70 6c 75 67 69 6e 73 20 61 64 64 69  lup plugins addi
0840: 6e 67 20 61 6c 73 6f 20 74 68 65 20 72 69 6f 74  ng also the riot
0850: 20 70 6c 75 67 69 6e 0a 20 20 20 20 20 20 2f 2f   plugin.      //
0860: 20 74 6f 20 69 6d 70 6f 72 74 20 64 69 6e 61 6d   to import dinam
0870: 69 63 61 6c 6c 79 20 74 68 65 20 74 61 67 73 0a  ically the tags.
0880: 20 20 20 20 20 20 65 78 74 65 72 6e 61 6c 3a 20        external: 
0890: 5b 27 72 69 6f 74 27 2c 20 27 65 78 74 65 72 6e  ['riot', 'extern
08a0: 61 6c 2d 68 65 6c 70 65 72 73 27 5d 2c 0a 20 20  al-helpers'],.  
08b0: 20 20 20 20 70 6c 75 67 69 6e 73 3a 20 5b 0a 20      plugins: [. 
08c0: 20 20 20 20 20 20 20 72 65 71 75 69 72 65 28 27         require('
08d0: 72 6f 6c 6c 75 70 2d 70 6c 75 67 69 6e 2d 72 69  rollup-plugin-ri
08e0: 6f 74 27 29 28 29 0a 20 20 20 20 20 20 5d 2e 63  ot')().      ].c
08f0: 6f 6e 63 61 74 28 72 65 71 75 69 72 65 28 27 2e  oncat(require('.
0900: 2e 2f 63 6f 6e 66 69 67 2f 64 65 66 61 75 6c 74  ./config/default
0910: 73 27 29 2e 70 6c 75 67 69 6e 73 29 2c 0a 20 20  s').plugins),.  
0920: 20 20 20 20 6f 75 74 70 75 74 3a 20 7b 0a 20 20      output: {.  
0930: 20 20 20 20 20 20 66 6f 72 6d 61 74 3a 20 27 69        format: 'i
0940: 69 66 65 27 2c 0a 20 20 20 20 20 20 20 20 67 6c  ife',.        gl
0950: 6f 62 61 6c 73 3a 20 7b 0a 20 20 20 20 20 20 20  obals: {.       
0960: 20 20 20 72 69 6f 74 3a 20 27 72 69 6f 74 27 0a     riot: 'riot'.
0970: 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20          }.      
0980: 7d 2c 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 20 63  },.    },..    c
0990: 6c 69 65 6e 74 3a 20 7b 0a 20 20 20 20 20 20 6d  lient: {.      m
09a0: 6f 63 68 61 3a 20 7b 0a 20 20 20 20 20 20 20 20  ocha: {.        
09b0: 74 69 6d 65 6f 75 74 3a 20 69 73 53 61 75 63 65  timeout: isSauce
09c0: 6c 61 62 73 20 3f 20 33 30 30 30 30 20 3a 20 33  labs ? 30000 : 3
09d0: 30 30 30 2c 20 2f 2f 20 73 61 75 63 65 6c 61 62  000, // saucelab
09e0: 20 74 65 73 74 73 20 63 61 6e 20 62 65 20 72 65   tests can be re
09f0: 61 6c 6c 79 20 72 65 61 6c 6c 79 20 73 6c 6f 77  ally really slow
0a00: 0a 20 20 20 20 20 20 20 20 2f 2f 20 63 68 61 6e  .        // chan
0a10: 67 65 20 4b 61 72 6d 61 27 73 20 64 65 62 75 67  ge Karma's debug
0a20: 2e 68 74 6d 6c 20 74 6f 20 74 68 65 20 6d 6f 63  .html to the moc
0a30: 68 61 20 77 65 62 20 72 65 70 6f 72 74 65 72 0a  ha web reporter.
0a40: 20 20 20 20 20 20 20 20 72 65 70 6f 72 74 65 72          reporter
0a50: 3a 20 27 68 74 6d 6c 27 0a 20 20 20 20 20 20 7d  : 'html'.      }
0a60: 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 20 63 6f 76  .    },..    cov
0a70: 65 72 61 67 65 52 65 70 6f 72 74 65 72 3a 20 7b  erageReporter: {
0a80: 0a 20 20 20 20 20 20 64 69 72 3a 20 27 2e 2e 2f  .      dir: '../
0a90: 63 6f 76 65 72 61 67 65 27 2c 0a 20 20 20 20 20  coverage',.     
0aa0: 20 72 65 70 6f 72 74 65 72 73 3a 20 5b 7b 0a 20   reporters: [{. 
0ab0: 20 20 20 20 20 20 20 74 79 70 65 3a 20 27 6c 63         type: 'lc
0ac0: 6f 76 27 2c 0a 20 20 20 20 20 20 20 20 73 75 62  ov',.        sub
0ad0: 64 69 72 3a 20 27 72 65 70 6f 72 74 2d 6c 63 6f  dir: 'report-lco
0ae0: 76 27 0a 20 20 20 20 20 20 7d 5d 0a 20 20 20 20  v'.      }].    
0af0: 7d 2c 0a 0a 20 20 20 20 73 69 6e 67 6c 65 52 75  },..    singleRu
0b00: 6e 3a 20 74 72 75 65 0a 20 20 7d 29 0a 7d 0a     n: true.  }).}.