|
1 | 1 | 'use strict';
|
2 |
| -var assert = require('assert'); |
3 | 2 | var fs = require('fs');
|
| 3 | +var test = require('ava'); |
4 | 4 | var imageSize = require('image-size');
|
5 | 5 | var concat = require('concat-stream');
|
6 | 6 | var Pageres = require('../');
|
7 | 7 |
|
8 | 8 | process.chdir(__dirname);
|
9 | 9 |
|
10 |
| -before(function () { |
11 |
| - this.timeout(20000); |
12 |
| -}); |
| 10 | +test('generate screenshots', function (t) { |
| 11 | + t.plan(5); |
13 | 12 |
|
14 |
| -it('should generate screenshots', function (cb) { |
15 | 13 | var pageres = new Pageres()
|
16 | 14 | .src('yeoman.io', ['480x320', '1024x768', 'iphone 5s'])
|
17 | 15 | .src('todomvc.com', ['1280x1024', '1920x1080']);
|
18 | 16 |
|
19 | 17 | pageres.run(function (err, streams) {
|
20 |
| - assert(!err, err); |
21 |
| - assert.strictEqual(streams.length, 5); |
22 |
| - assert.strictEqual(streams[0].filename, 'todomvc.com-1280x1024.png'); |
23 |
| - assert.strictEqual(streams[4].filename, 'yeoman.io-320x568.png'); |
| 18 | + t.assert(!err, err); |
| 19 | + t.assert(streams.length === 5); |
| 20 | + t.assert(streams[0].filename === 'todomvc.com-1280x1024.png'); |
| 21 | + t.assert(streams[4].filename === 'yeoman.io-320x568.png'); |
24 | 22 |
|
25 | 23 | streams[0].once('data', function (data) {
|
26 |
| - assert(data.length > 1000); |
27 |
| - cb(); |
| 24 | + t.assert(data.length > 1000); |
28 | 25 | });
|
29 | 26 | });
|
30 | 27 | });
|
31 | 28 |
|
32 |
| -it('should remove special characters from the URL to create a valid filename', function (cb) { |
| 29 | +test('remove special characters from the URL to create a valid filename', function (t) { |
| 30 | + t.plan(3); |
| 31 | + |
33 | 32 | var pageres = new Pageres()
|
34 | 33 | .src('http://www.microsoft.com/?query=pageres*|<>:"\\', ['1024x768']);
|
35 | 34 |
|
36 | 35 | pageres.run(function (err, streams) {
|
37 |
| - assert(!err, err); |
38 |
| - assert.strictEqual(streams.length, 1); |
39 |
| - assert.strictEqual(streams[0].filename, 'microsoft.com!query=pageres-1024x768.png'); |
| 36 | + t.assert(!err, err); |
| 37 | + t.assert(streams.length === 1); |
| 38 | + t.assert(streams[0].filename === 'microsoft.com!query=pageres-1024x768.png'); |
40 | 39 | cb();
|
41 | 40 | });
|
42 | 41 | });
|
43 | 42 |
|
44 |
| -it('should have a `delay` option', function (cb) { |
| 43 | +test('have a `delay` option', function (t) { |
| 44 | + t.plan(2); |
| 45 | + |
45 | 46 | var pageres = new Pageres({ delay: 2 })
|
46 | 47 | .src('http://todomvc.com', ['1024x768']);
|
47 | 48 |
|
48 | 49 | pageres.run(function (err, streams) {
|
49 |
| - assert(!err, err); |
| 50 | + t.assert(!err, err); |
50 | 51 |
|
51 | 52 | var now = new Date();
|
52 | 53 |
|
53 | 54 | streams[0].once('data', function () {
|
54 |
| - assert((new Date()) - now > 2000); |
55 |
| - cb(); |
| 55 | + t.assert((new Date()) - now > 2000); |
56 | 56 | });
|
57 | 57 | });
|
58 | 58 | });
|
59 | 59 |
|
60 |
| -it('should crop image using the `crop` option', function (cb) { |
| 60 | +test('crop image using the `crop` option', function (t) { |
| 61 | + t.plan(4); |
| 62 | + |
61 | 63 | var pageres = new Pageres({ crop: true })
|
62 | 64 | .src('http://todomvc.com', ['1024x768']);
|
63 | 65 |
|
64 | 66 | pageres.run(function (err, streams) {
|
65 |
| - assert(!err, err); |
66 |
| - assert.strictEqual(streams[0].filename, 'todomvc.com-1024x768-cropped.png'); |
| 67 | + t.assert(!err, err); |
| 68 | + t.assert(streams[0].filename === 'todomvc.com-1024x768-cropped.png'); |
67 | 69 |
|
68 | 70 | streams[0].pipe(concat(function (data) {
|
69 | 71 | var size = imageSize(data);
|
70 |
| - assert.strictEqual(size.width, 1024); |
71 |
| - assert.strictEqual(size.height, 768); |
72 |
| - cb(); |
| 72 | + t.assert(size.width === 1024); |
| 73 | + t.assert(size.height === 768); |
73 | 74 | }));
|
74 | 75 | });
|
75 | 76 | });
|
76 | 77 |
|
77 |
| -it('should support local relative files', function (cb) { |
| 78 | +test('support local relative files', function (t) { |
| 79 | + t.plan(3); |
| 80 | + |
78 | 81 | var pageres = new Pageres()
|
79 | 82 | .src('fixture.html', ['1024x768']);
|
80 | 83 |
|
81 | 84 | pageres.run(function (err, streams) {
|
82 |
| - assert(!err, err); |
83 |
| - |
84 |
| - assert.strictEqual(streams[0].filename, 'fixture.html-1024x768.png'); |
| 85 | + t.assert(!err, err); |
| 86 | + t.assert(streams[0].filename === 'fixture.html-1024x768.png'); |
85 | 87 |
|
86 | 88 | streams[0].once('data', function (data) {
|
87 |
| - assert(data.length > 1000); |
88 |
| - cb(); |
| 89 | + t.assert(data.length > 1000); |
89 | 90 | });
|
90 | 91 | });
|
91 | 92 | });
|
92 | 93 |
|
93 |
| -it('should fetch resolutions from w3counter', function (cb) { |
| 94 | +test('fetch resolutions from w3counter', function (t) { |
| 95 | + t.plan(3); |
| 96 | + |
94 | 97 | var pageres = new Pageres()
|
95 | 98 | .src('yeoman.io', ['w3counter']);
|
96 | 99 |
|
97 | 100 | pageres.run(function (err, streams) {
|
98 |
| - assert(!err, err); |
99 |
| - assert.strictEqual(streams.length, 10); |
| 101 | + t.assert(!err, err); |
| 102 | + t.assert(streams.length === 10); |
100 | 103 |
|
101 | 104 | streams[0].once('data', function (data) {
|
102 |
| - assert(data.length > 1000); |
103 |
| - cb(); |
| 105 | + t.assert(data.length > 1000); |
104 | 106 | });
|
105 | 107 | });
|
106 | 108 | });
|
107 | 109 |
|
108 |
| -it('should save image', function (cb) { |
| 110 | +test('save image', function (t) { |
| 111 | + t.plan(2); |
| 112 | + |
109 | 113 | var pageres = new Pageres()
|
110 | 114 | .src('http://todomvc.com', ['1024x768'])
|
111 | 115 | .dest(__dirname);
|
112 | 116 |
|
113 | 117 | pageres.run(function (err) {
|
114 |
| - assert(!err); |
115 |
| - assert(fs.existsSync('todomvc.com-1024x768.png')); |
| 118 | + t.assert(!err, err); |
| 119 | + t.assert(fs.existsSync('todomvc.com-1024x768.png')); |
116 | 120 | fs.unlinkSync('todomvc.com-1024x768.png');
|
117 |
| - cb(); |
118 | 121 | });
|
119 | 122 | });
|
0 commit comments