Describe section Before call airline#parts#define_text('text', 'text') call airline#parts#define_raw('raw', 'raw') call airline#parts#define_function('func', 'SectionSpec') End It should be able to reference default parts let s = airline#section#create(['paste']) Assert Equals(s, '%{airline#util#wrap(airline#parts#paste(),0)}') End It should create sections wIth no separators let s = airline#section#create(['text', 'raw', 'func']) Assert Equals(s, '%{airline#util#wrap("text",0)}raw%{airline#util#wrap(SectionSpec(),0)}') End It should create left sections with separators let s = airline#section#create_left(['text', 'text']) Assert Equals(s, '%{airline#util#wrap("text",0)}%{airline#util#append("text",0)}') End It should create right sections wIth separators let s = airline#section#create_right(['text', 'text']) Assert Equals(s, '%{airline#util#prepend("text",0)}%{airline#util#wrap("text",0)}') End It should prefix with accent group if provided and restore afterwards call airline#parts#define('hi', { \ 'raw': 'hello', \ 'accent': 'red', \ }) let s = airline#section#create(['hi']) Assert Equals(s, '%#__accent_red#hello%#__restore__#') End It should accent functions call airline#parts#define_function('hi', 'Hello') call airline#parts#define_accent('hi', 'bold') let s = airline#section#create(['hi']) Assert Equals(s, '%#__accent_bold#%{airline#util#wrap(Hello(),0)}%#__restore__#') End It should parse out a section from the distro call airline#extensions#load() let s = airline#section#create(['whitespace']) Assert Match(s, 'airline#extensions#whitespace#check') End It should use parts as is if they are not found let s = airline#section#create(['asdf', 'func']) Assert Equals(s, 'asdf%{airline#util#wrap(SectionSpec(),0)}') End It should force add separators for raw and missing keys let s = airline#section#create_left(['asdf', 'raw']) Assert Equals(s, 'asdf raw') let s = airline#section#create_left(['asdf', 'aaaa', 'raw']) Assert Equals(s, 'asdf aaaa raw') let s = airline#section#create_right(['raw', '%f']) Assert Equals(s, 'raw %f') let s = airline#section#create_right(['%t', 'asdf', '%{getcwd()}']) Assert Equals(s, '%t asdf %{getcwd()}') End It should empty out parts that do not pass their condition call airline#parts#define_text('conditional', 'conditional') call airline#parts#define_condition('conditional', '0') let s = airline#section#create(['conditional']) Assert Equals(s, '%{0 ? airline#util#wrap("conditional",0) : ""}') End It should not draw two separators after another let s = airline#section#create_right(['ffenc','%{strftime("%H:%M")}']) Assert Equals(s, '%{airline#util#prepend(airline#parts#ffenc(),0)}%{strftime("%H:%M")}') End End