UNPKG

1.47 kBtext/coffeescriptView Raw
1Hey = require '../'
2mkdirp = require 'mkdirp'
3async = require 'async'
4fs = require 'fs'
5exec = require('child_process').exec
6handlebars = require 'handlebars'
7
8class HeyTest
9 constructor: (@blog_dir, options) ->
10 options or= {}
11 @hey = null
12 @number_of_posts = options.number_of_posts or 1000
13 @fixtures_file = options.fixtures_file or './fixtures/posts'
14 @tpl = handlebars.compile "{{title}}\n=========\nType: Text\nPublished: {{date}}\nTags: {{tags}}\n\n {{body}}"
15
16 create_blog_folder: (callback) ->
17 mkdirp.sync @blog_dir
18
19 delete_blog_folder: (callback) ->
20 exec "rm -rf #{blog_dir}", callback
21
22 create_new_blog: (callback) =>
23 @create_blog_folder()
24 @hey = new Hey @blog_dir
25 @hey.init()
26 callback?()
27
28 loadFixtures: =>
29 @data = require @fixtures_file
30
31 @make_post = (n, callback) ->
32 title = randomItem @data.titles
33 post = tpl
34 title: title
35 date: randomItem @data.dates
36 tags: randomItem @data.tags
37 body: randomItem @data.contents
38
39 fs.writeFileSync makeFilename(title, n), post
40 callback null, post
41
42 load_test: =>
43 @create_new_blog =>
44 @loadFixtures()
45 console.log typeof @make_post
46 # async.times @number_of_posts, console.log, (error, posts) =>
47 # @hey.build => @delete_blog_folder()
48
49randomItem = (items) ->
50 items[Math.floor(Math.random() * items.length)]
51
52makeFilename = (title, n) ->
53 "#{blogDir}/posts/"+ title.toLowerCase().replace(/\s/g, '-') + "-#{n}.md"
54
55test = new HeyTest process.cwd() + '/blog/'
56test.load_test()