Skip to content

Commit

Permalink
Haxe 3.4.7 compatibility + CI (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
kLabz authored Dec 6, 2019
1 parent 0db972b commit 25d6f86
Show file tree
Hide file tree
Showing 6 changed files with 80 additions and 13 deletions.
51 changes: 51 additions & 0 deletions .github/workflows/test_haxe_3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Haxe 3.4.7

on: [push]

jobs:
test:
runs-on: ubuntu-16.04
steps:
- uses: actions/checkout@v1
- name: Install nodejs
uses: actions/setup-node@v1
with:
node-version: 12.x
- name: Install neko
run: |
sudo add-apt-repository ppa:haxe/snapshots -y
sudo apt-get update
sudo apt install neko -y
- name: Neko version
run: |
neko -version
- name: Install haxe
run: |
cd /opt
git clone https://github.com/kLabz/haxe-manager.git haxe && cd haxe
SKIP_DEFAULTS=1 sh install.sh
hx-download 3.4.7
env:
PATH: /opt/hostedtoolcache/node/12.13.1/x64/bin:/usr/share/rust/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/haxe/bin
- name: Select haxe version
run: |
hx-select 3.4.7
env:
PATH: /opt/hostedtoolcache/node/12.13.1/x64/bin:/usr/share/rust/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/haxe/bin
- name: Install haxe + javascript dependencies
run: |
cd test
npm i
npm run init:3.4.7
env:
PATH: /opt/hostedtoolcache/node/12.13.1/x64/bin:/usr/share/rust/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/haxe/bin
HAXE_STD_PATH: /opt/haxe/std
- name: Run tests
run: |
cd test
npm test
env:
CI: true
PATH: /opt/hostedtoolcache/node/12.13.1/x64/bin:/usr/share/rust/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/haxe/bin
HAXE_STD_PATH: /opt/haxe/std

Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ jobs:
run: |
cd test
npm i
npm run init:4.0.x
env:
PATH: /opt/hostedtoolcache/node/12.13.1/x64/bin:/usr/share/rust/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/haxe/bin
HAXE_STD_PATH: /opt/haxe/std
Expand Down
2 changes: 1 addition & 1 deletion src/mui/Colors.hx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ enum EColor {
// TODO: other flavors
}

enum abstract ColorString(String) from String to String {
@:enum abstract ColorString(String) from String to String {
@:from
public static function fromEnum(e:EColor):ColorString {
return switch (e) {
Expand Down
19 changes: 16 additions & 3 deletions src/mui/core/styles/MuiTheme.hx
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ typedef Theme<
@:optional var zIndex:TZIndexes;
}

enum abstract PaletteType(String) from String to String {
@:enum abstract PaletteType(String) from String to String {
var Light = "light";
var Dark = "dark";
}
Expand Down Expand Up @@ -170,8 +170,13 @@ typedef MuiPalette<
@:optional var tonalOffset:Float; // 0.2
@:optional var shadows:Array<String>;

#if haxe4
@:optional var getContrastText:(background:ColorString)->Float;
@:optional var augmentColor:(color:PaletteIntention,?mainShade:Int,?lightShade:Int,?darkShade:Int)->PaletteIntention;
#else
@:optional var getContrastText:ColorString->Float;
@:optional var augmentColor:PaletteIntention->?Int->?Int->?Int->PaletteIntention;
#end

@:optional var primary:PaletteIntention;
@:optional var secondary:PaletteIntention;
Expand Down Expand Up @@ -243,11 +248,19 @@ typedef MuiBreakpoints = {
var xl:Int; // 1920
};

#if haxe4
var up:(key:BreakpointOrNumber)->String;
var down:(key:BreakpointOrNumber)->String;
var between:(start:Breakpoint, end:Breakpoint)->String;
var only:(key:Breakpoint)->String;
var width:(key:Breakpoint)->Int;
#else
var up:BreakpointOrNumber->String;
var down:BreakpointOrNumber->String;
var between:Breakpoint->Breakpoint->String;
var only:Breakpoint->String;
var width:Breakpoint->Int;
#end
}

typedef MuiTypography = {
Expand Down Expand Up @@ -277,7 +290,7 @@ typedef MuiTypography = {
}

typedef MuiTransitions = {
var create:()->String;
var create:Void->String;
@:optional var getAutoHeightDuration:Float->Float; // TODO: check vs Int
@:optional var easing:MuiTransitionsEasing;
@:optional var duration:MuiTransitionsDuration;
Expand Down Expand Up @@ -310,7 +323,7 @@ typedef MuiZIndexes = {
var tooltip:Int; // 1500
}

enum abstract Direction(String) {
@:enum abstract Direction(String) {
var Ltr = "ltr";
var Rtl = "rtl";
// ?
Expand Down
4 changes: 3 additions & 1 deletion test/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"name": "haxe-material-ui-tests",
"scripts": {
"postinstall": "haxelib newrepo && haxelib install --always --skip-dependencies --quiet install.hxml",
"postinstall": "haxelib newrepo",
"init:4.0.x": "haxelib install --always --skip-dependencies --quiet install.hxml",
"init:3.4.7": "haxelib install --always --quiet install.hxml",
"test": "haxe test.hxml"
},
"dependencies": {
Expand Down
16 changes: 8 additions & 8 deletions test/src/test/HugePileOfJsx.hx
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ class HugePileOfJsx extends SingleSuite {
JsdomSetup.init();

var defaultTheme = MuiTheme.createMuiTheme({});
var noop = (?_) -> {};
var elt = jsx(<div />);
var noop = function(?_) {};
var elt = jsx('<div />');

describe("Material UI components", {
// TODO: split up and use more props
// TODO: add lab components: Autocomplete, Rating, TreeItem, TreeView
it("can be included in jsx", {
var ret = jsx(<>
var ret = jsx('<>
<MuiStylesProvider>
<>
<Autocomplete renderInput={(_) -> elt} />
<Autocomplete renderInput={function(_) return elt} />
<Rating />
<Skeleton />
<SpeedDial ariaLabel="" open />
Expand Down Expand Up @@ -109,17 +109,17 @@ class HugePileOfJsx extends SingleSuite {
<MenuItem />
<MenuList />
<MobileStepper steps={1} />
<Modal children={<Grid />} open />
<Modal children=${jsx('<Grid />')} open />
<NativeSelect />
<NoSsr children={elt} />
<OutlinedInput labelWidth={0} />
<Paper />
<Popover open />
<Popper children={<Grid />} open={false} />
<Popper children=${jsx('<Grid />')} open={false} />
<Portal />
<Radio />
<RadioGroup />
<RootRef children={<Grid />} rootRef={React.createRef()} />
<RootRef children=${jsx('<Grid />')} rootRef={React.createRef()} />
<Select />
<Slide />
<Slider />
Expand Down Expand Up @@ -154,7 +154,7 @@ class HugePileOfJsx extends SingleSuite {

</>
</MuiThemeProvider>
</>);
</>');

ret.should.not.be(null);
});
Expand Down

0 comments on commit 25d6f86

Please sign in to comment.