├── .gitignore ├── CNAME ├── Gemfile ├── Gemfile.lock ├── _config.yml ├── _includes ├── footer.html ├── google-analytics.html ├── head.html ├── header.html └── twitter-button.html ├── _layouts ├── default.html ├── home.html └── post.html ├── _posts ├── 2016-11-30-1-introduction.markdown └── 2017-02-11-2-assertions.markdown ├── assets ├── logo.png ├── main.scss └── thumbnails │ ├── 1.jpg │ └── 2.jpg ├── docs ├── CNAME ├── assets │ ├── logo.png │ ├── main.css │ └── thumbnails │ │ ├── 1.jpg │ │ └── 2.jpg ├── episodes │ ├── 1-introduction.html │ └── 2-assertions.html ├── feed.xml ├── feed.xslt.xml ├── index.html ├── license └── readme.md ├── index.md ├── license └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | _site 2 | .sass-cache 3 | .jekyll-metadata 4 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | avacasts.com 2 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | ruby RUBY_VERSION 3 | 4 | gem "jekyll", "3.3.1" 5 | 6 | group :jekyll_plugins do 7 | gem "jekyll-feed", "~> 0.6" 8 | end 9 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.5.0) 5 | public_suffix (~> 2.0, >= 2.0.2) 6 | colorator (1.1.0) 7 | ffi (1.9.14) 8 | forwardable-extended (2.6.0) 9 | jekyll (3.3.1) 10 | addressable (~> 2.4) 11 | colorator (~> 1.0) 12 | jekyll-sass-converter (~> 1.0) 13 | jekyll-watch (~> 1.1) 14 | kramdown (~> 1.3) 15 | liquid (~> 3.0) 16 | mercenary (~> 0.3.3) 17 | pathutil (~> 0.9) 18 | rouge (~> 1.7) 19 | safe_yaml (~> 1.0) 20 | jekyll-feed (0.8.0) 21 | jekyll (~> 3.3) 22 | jekyll-sass-converter (1.5.0) 23 | sass (~> 3.4) 24 | jekyll-watch (1.5.0) 25 | listen (~> 3.0, < 3.1) 26 | kramdown (1.13.1) 27 | liquid (3.0.6) 28 | listen (3.0.8) 29 | rb-fsevent (~> 0.9, >= 0.9.4) 30 | rb-inotify (~> 0.9, >= 0.9.7) 31 | mercenary (0.3.6) 32 | pathutil (0.14.0) 33 | forwardable-extended (~> 2.6) 34 | public_suffix (2.0.4) 35 | rb-fsevent (0.9.8) 36 | rb-inotify (0.9.7) 37 | ffi (>= 0.5.0) 38 | rouge (1.11.1) 39 | safe_yaml (1.0.4) 40 | sass (3.4.22) 41 | 42 | PLATFORMS 43 | ruby 44 | 45 | DEPENDENCIES 46 | jekyll (= 3.3.1) 47 | jekyll-feed (~> 0.6) 48 | 49 | RUBY VERSION 50 | ruby 2.1.3p242 51 | 52 | BUNDLED WITH 53 | 1.13.6 54 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | title: AVA Casts 2 | description: > 3 | AVA Casts is a series of short screencasts about AVA test framework. 4 | baseurl: "" 5 | url: "" 6 | twitter_username: vadimdemedes 7 | github_username: vadimdemedes 8 | google_analytics: UA-56814364-8 9 | 10 | permalink: /episodes/:slug 11 | 12 | markdown: kramdown 13 | gems: 14 | - jekyll-feed 15 | exclude: 16 | - Gemfile 17 | - Gemfile.lock 18 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/google-analytics.html: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /_includes/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %} 7 | 8 | 9 | 10 | 11 | 12 | 13 | {% include google-analytics.html %} 14 | {% include twitter-button.html %} 15 | 16 | -------------------------------------------------------------------------------- /_includes/header.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
-------------------------------------------------------------------------------- /_includes/twitter-button.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% include head.html %} 4 | 5 |
6 | {% include header.html %} 7 | 8 |
9 | {{ content }} 10 |
11 |
12 | 13 | {% include footer.html %} 14 | 15 | 16 | -------------------------------------------------------------------------------- /_layouts/home.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {{ content }} 6 | 7 |
8 | {% for post in site.posts %} 9 |
10 | 11 | 12 | 13 | 14 | 26 | 27 | {{ post.date | date: "%b %-d, %Y" }} 28 |
{{ post.excerpt }}
29 | 30 |
31 | {% endfor %} 32 |
33 | -------------------------------------------------------------------------------- /_layouts/post.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
6 |
7 |
8 | 9 |
10 | 11 | 23 | 24 | {{ page.date | date: "%b %-d, %Y" }} 25 |
{{ content }}
26 |
27 |
28 | -------------------------------------------------------------------------------- /_posts/2016-11-30-1-introduction.markdown: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: "Introduction" 4 | date: 2016-11-30 21:47:37 +0200 5 | episode: 1 6 | video_id: 193244619 7 | --- 8 | 9 | In this episode we’re going to learn what AVA is, how to set it up and after that we'll check out a few of AVA's features. 10 | 11 | 12 | *Resources:* 13 | - **AVA** - [https://github.com/avajs/ava](https://github.com/avajs/ava) 14 | - **mz** - [https://github.com/normalize/mz](https://github.com/normalize/mz) 15 | - **async/await** - [https://jakearchibald.com/2014/es7-async-functions/](https://jakearchibald.com/2014/es7-async-functions/) (explanatory post) 16 | -------------------------------------------------------------------------------- /_posts/2017-02-11-2-assertions.markdown: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: "Assertions" 4 | date: 2017-02-11 17:35:00 +0200 5 | episode: 2 6 | video_id: 203592719 7 | --- 8 | 9 | In this episode we're going to learn and practice the essentials of writing tests - assertions. 10 | 11 | 12 | *Resources:* 13 | - **AVA's assertions** - [https://github.com/avajs/ava#assertions](https://github.com/avajs/ava#assertions) 14 | -------------------------------------------------------------------------------- /assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avacasts/website/623bb71a8fd1ff57fc216d525981dcb4df9a07e1/assets/logo.png -------------------------------------------------------------------------------- /assets/main.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | $font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; 5 | 6 | * { 7 | box-sizing: border-box; 8 | } 9 | 10 | html { 11 | font-size: 62.5%; 12 | height: 100%; 13 | } 14 | 15 | body { 16 | font-family: $font-family; 17 | font-size: 1.6rem; 18 | color: #1B1B1E; 19 | min-height: 100%; 20 | display: flex; 21 | flex-direction: column; 22 | } 23 | 24 | .wrapper { 25 | flex: 1; 26 | } 27 | 28 | a { 29 | color: #4C4B63; 30 | text-decoration: none; 31 | } 32 | 33 | .container { 34 | margin: auto auto; 35 | max-width: 640px; 36 | } 37 | 38 | header { 39 | margin: 40px 0; 40 | } 41 | 42 | .logo { 43 | display: block; 44 | margin: 0 auto; 45 | width: 200px; 46 | } 47 | 48 | .fit { 49 | max-width: 100%; 50 | } 51 | 52 | .episodes { 53 | margin-top: 80px; 54 | } 55 | 56 | .episode { 57 | margin-bottom: 40px; 58 | } 59 | 60 | .video { 61 | position: relative; 62 | height: 0; 63 | overflow: hidden; 64 | padding-bottom: 56.25%; 65 | } 66 | 67 | .video iframe { 68 | position: absolute; 69 | top: 0; 70 | left: 0; 71 | width: 100%; 72 | height: 100%; 73 | } 74 | 75 | .flex-auto { 76 | flex: 1 1 auto; 77 | min-width: 0; 78 | min-height: 0; 79 | } 80 | 81 | .episode-desc { 82 | margin: 12px 0 6px; 83 | display: flex; 84 | } 85 | 86 | .episode-title { 87 | margin: 0; 88 | } 89 | 90 | .episode-title-prefix { 91 | color: #ABA8B2; 92 | } 93 | 94 | .episode-buttons { 95 | display: flex; 96 | justify-content: flex-end; 97 | min-width: 110px; 98 | } 99 | 100 | .episode-date { 101 | color: #798071; 102 | } 103 | 104 | .episode-body { 105 | line-height: 1.6; 106 | } 107 | 108 | .button { 109 | display: block; 110 | background: #4C4B63; 111 | color: #fff; 112 | border-radius: 2px; 113 | padding: 8px 12px; 114 | font-weight: bold; 115 | border-bottom: 1px solid #3c3b4c; 116 | } 117 | 118 | footer { 119 | margin-top: 40px; 120 | text-align: center; 121 | color: #798071; 122 | font-size: 1.2rem; 123 | } 124 | 125 | ul { 126 | padding: 0 0 0 6px; 127 | margin: 0; 128 | list-style: none; 129 | } 130 | -------------------------------------------------------------------------------- /assets/thumbnails/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avacasts/website/623bb71a8fd1ff57fc216d525981dcb4df9a07e1/assets/thumbnails/1.jpg -------------------------------------------------------------------------------- /assets/thumbnails/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avacasts/website/623bb71a8fd1ff57fc216d525981dcb4df9a07e1/assets/thumbnails/2.jpg -------------------------------------------------------------------------------- /docs/CNAME: -------------------------------------------------------------------------------- 1 | avacasts.com 2 | -------------------------------------------------------------------------------- /docs/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avacasts/website/623bb71a8fd1ff57fc216d525981dcb4df9a07e1/docs/assets/logo.png -------------------------------------------------------------------------------- /docs/assets/main.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; } 3 | 4 | html { 5 | font-size: 62.5%; 6 | height: 100%; } 7 | 8 | body { 9 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 10 | font-size: 1.6rem; 11 | color: #1B1B1E; 12 | min-height: 100%; 13 | display: flex; 14 | flex-direction: column; } 15 | 16 | .wrapper { 17 | flex: 1; } 18 | 19 | a { 20 | color: #4C4B63; 21 | text-decoration: none; } 22 | 23 | .container { 24 | margin: auto auto; 25 | max-width: 640px; } 26 | 27 | header { 28 | margin: 40px 0; } 29 | 30 | .logo { 31 | display: block; 32 | margin: 0 auto; 33 | width: 200px; } 34 | 35 | .fit { 36 | max-width: 100%; } 37 | 38 | .episodes { 39 | margin-top: 80px; } 40 | 41 | .episode { 42 | margin-bottom: 40px; } 43 | 44 | .video { 45 | position: relative; 46 | height: 0; 47 | overflow: hidden; 48 | padding-bottom: 56.25%; } 49 | 50 | .video iframe { 51 | position: absolute; 52 | top: 0; 53 | left: 0; 54 | width: 100%; 55 | height: 100%; } 56 | 57 | .flex-auto { 58 | flex: 1 1 auto; 59 | min-width: 0; 60 | min-height: 0; } 61 | 62 | .episode-desc { 63 | margin: 12px 0 6px; 64 | display: flex; } 65 | 66 | .episode-title { 67 | margin: 0; } 68 | 69 | .episode-title-prefix { 70 | color: #ABA8B2; } 71 | 72 | .episode-buttons { 73 | display: flex; 74 | justify-content: flex-end; 75 | min-width: 110px; } 76 | 77 | .episode-date { 78 | color: #798071; } 79 | 80 | .episode-body { 81 | line-height: 1.6; } 82 | 83 | .button { 84 | display: block; 85 | background: #4C4B63; 86 | color: #fff; 87 | border-radius: 2px; 88 | padding: 8px 12px; 89 | font-weight: bold; 90 | border-bottom: 1px solid #3c3b4c; } 91 | 92 | footer { 93 | margin-top: 40px; 94 | text-align: center; 95 | color: #798071; 96 | font-size: 1.2rem; } 97 | 98 | ul { 99 | padding: 0 0 0 6px; 100 | margin: 0; 101 | list-style: none; } 102 | -------------------------------------------------------------------------------- /docs/assets/thumbnails/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avacasts/website/623bb71a8fd1ff57fc216d525981dcb4df9a07e1/docs/assets/thumbnails/1.jpg -------------------------------------------------------------------------------- /docs/assets/thumbnails/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avacasts/website/623bb71a8fd1ff57fc216d525981dcb4df9a07e1/docs/assets/thumbnails/2.jpg -------------------------------------------------------------------------------- /docs/episodes/1-introduction.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Introduction 9 | 10 | 11 | 12 | 13 | 14 | 15 | 25 | 26 | 27 | 43 | 44 | 45 | 46 |
47 |
48 |
49 | 50 |
51 |
52 | 53 |
54 |
55 |
56 |
57 | 58 |
59 | 60 |
61 |

62 | 63 | Ep 1. 64 | Introduction 65 | 66 |

67 | 68 |
69 | 70 |
71 |
72 | 73 | Nov 30, 2016 74 |

In this episode we’re going to learn what AVA is, how to set it up and after that we’ll check out a few of AVA’s features.

75 | 76 |

Resources:

77 | 82 |
83 |
84 |
85 | 86 |
87 |
88 | 89 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /docs/episodes/2-assertions.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Assertions 9 | 10 | 11 | 12 | 13 | 14 | 15 | 25 | 26 | 27 | 43 | 44 | 45 | 46 |
47 |
48 |
49 | 50 |
51 |
52 | 53 |
54 |
55 |
56 |
57 | 58 |
59 | 60 |
61 |

62 | 63 | Ep 2. 64 | Assertions 65 | 66 |

67 | 68 |
69 | 70 |
71 |
72 | 73 | Feb 11, 2017 74 |

In this episode we’re going to learn and practice the essentials of writing tests - assertions.

75 | 76 |

Resources:

77 | 80 |
81 |
82 |
83 | 84 |
85 |
86 | 87 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /docs/feed.xml: -------------------------------------------------------------------------------- 1 | Jekyll2017-02-11T17:43:13+02:00//AVA CastsAVA Casts is a series of short screencasts about AVA test framework. 2 | Assertions2017-02-11T17:35:00+02:002017-02-11T17:35:00+02:00/episodes/2-assertions<p>In this episode we’re going to learn and practice the essentials of writing tests - assertions.</p> 3 | 4 | <p><em>Resources:</em></p> 5 | <ul> 6 | <li><strong>AVA’s assertions</strong> - <a href="https://github.com/avajs/ava#assertions">https://github.com/avajs/ava#assertions</a></li> 7 | </ul>In this episode we’re going to learn and practice the essentials of writing tests - assertions.Introduction2016-11-30T21:47:37+02:002016-11-30T21:47:37+02:00/episodes/1-introduction<p>In this episode we’re going to learn what AVA is, how to set it up and after that we’ll check out a few of AVA’s features.</p> 8 | 9 | <p><em>Resources:</em></p> 10 | <ul> 11 | <li><strong>AVA</strong> - <a href="https://github.com/avajs/ava">https://github.com/avajs/ava</a></li> 12 | <li><strong>mz</strong> - <a href="https://github.com/normalize/mz">https://github.com/normalize/mz</a></li> 13 | <li><strong>async/await</strong> - <a href="https://jakearchibald.com/2014/es7-async-functions/">https://jakearchibald.com/2014/es7-async-functions/</a> (explanatory post)</li> 14 | </ul>In this episode we’re going to learn what AVA is, how to set it up and after that we’ll check out a few of AVA’s features. 15 | -------------------------------------------------------------------------------- /docs/feed.xslt.xml: -------------------------------------------------------------------------------- 1 | Atom Feed: ---------------------------------------- Feed entry: : : 5 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | AVA Casts 9 | 10 | 11 | 12 | 13 | 14 | 15 | 25 | 26 | 27 | 43 | 44 | 45 | 46 |
47 |
48 |
49 | 50 |
51 |
52 | 53 |
54 | 55 | 56 | 57 |
58 | 59 |
60 | 61 | 62 | 63 | 64 |
65 |

66 | 67 | Ep 2. 68 | Assertions 69 | 70 |

71 | 72 |
73 | Watch now 74 |
75 |
76 | 77 | Feb 11, 2017 78 |

In this episode we’re going to learn and practice the essentials of writing tests - assertions.

79 | 80 |
81 | 82 |
83 | 84 |
85 | 86 | 87 | 88 | 89 |
90 |

91 | 92 | Ep 1. 93 | Introduction 94 | 95 |

96 | 97 |
98 | Watch now 99 |
100 |
101 | 102 | Nov 30, 2016 103 |

In this episode we’re going to learn what AVA is, how to set it up and after that we’ll check out a few of AVA’s features.

104 | 105 |
106 | 107 |
108 | 109 |
110 | 111 |
112 |
113 | 114 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /docs/license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Vadim Demedes 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avacasts/website/623bb71a8fd1ff57fc216d525981dcb4df9a07e1/docs/readme.md -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: home 3 | --- 4 | -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Vadim Demedes 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avacasts/website/623bb71a8fd1ff57fc216d525981dcb4df9a07e1/readme.md --------------------------------------------------------------------------------